zoukankan      html  css  js  c++  java
  • 在更新操作中所需要注意的事项

    相信只要学习了编程的童鞋,都对于增删改查功能被不陌生,在这次所写的小项目中,定义了一个department,里面的did设置为自增形式,当然在查询列表的时候这个did是不被展示出来的,所以需要更新查询列表中的每一行数据更新操作以后,我们在Action中所做的处理是,进行回显操作,而这一部分就需要将这这个所需要更新操作的department放入栈顶:

    	//获取数据并保存到栈顶,能够及时回显
    	public String updateUI()
    	{   System.out.println("haha");
    		Department department=departmentService.getDepartmentbyId(this.model.getDid());
    		ActionContext.getContext().getValueStack().getRoot().add(0, department);
    		return "updatedepartment";
    	}
    

     当然在update.jsp中和添加功能的jsp页面代码大部分相似,如果完全只是复制add.jsp的页面代码并仅仅只是更改一下提交路径的话,就会报错:HTTP Status 500 - Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1; nested exception is org.hibernate.StaleStateException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1,或者说报错:id to load is required for loading,意思就是说获取的id不对,我在action中updateDepartment方法里面输出department.getDid()得出结果为0,而在这之前查询所得的model中是可以获取出正确的did的,所以为了避免此问题的发生,就需要在update.jsp中添加一个显示框用于显示did,只是将这个显示框的属性设置为不可写入就可,或者是设置隐藏,我的设置如下(did不能进行更改):

    <tr><td>部门id</td>
                            <td><s:textfield name="did" class="InputStyle"  readonly="true"/> *</td>
                        </tr>
    

     这样的话后面就可以正常从这个update.jsp中正常获取did,这样更新操作就可以顺利进行。

  • 相关阅读:
    Systemd 入门教程:实战篇
    Docker 1.12.0将要发布的新功能
    ubuntu 11.10 安装apache2 tomcat6
    DNS 原理入门
    c# 日志记录 行号
    WIN7系统插入蓝牙适配器经常断开问题
    iphone手机与PC蓝牙出现感叹号且无法修复解决方案
    未找到与约束ContractName Microsoft.VisualStudio.Text.ITextDocumentFactoryService...匹配的导出
    虚拟机如何设置U盘启动项
    Resharper 8.2 注册码
  • 原文地址:https://www.cnblogs.com/AsherBlog/p/5434620.html
Copyright © 2011-2022 走看看