有个疑问,想问问大家怎么做比较合理,具体需求如下:
页面中比如有两个输入字段,字段name1和name2,在action中我接受到前台输入的value 在VO中可以得到,例如
vo.getName1()和vogetName2()但是我VO中还有一些不要修改的字段,例如 第一次添加信息的用户user,这时候在前台页面中我根本没有放user,所有在action中的vo.getUser()是null,这时候我要update数据,问题出现了,数据库中的本来有的user数值已经是null了,因为我是直接把前台给过来的VO update的现在我想到的做法如下:
1、在前台加一个hidde 在到action时候就直接带到BO中
2、在action在 通过pk 在数据库或session中取出一个修改之前的VO,在把页面中有修改数值的字段压到前一个VO中
以上的都是在编辑一样页面时候的场景
1,2的缺点,如果不想修改的数值多的话,有点不现实大家有没有好的办法,我开始是想 把页面的VO 和 数据库取出的PO 进行比较,如果页面中VO的数值发生了变化就去update,如果没有就还保留着数据中的字段内容,但这个不知道怎么做好,
希望大家给指点下Hibernatesessionj2eStruts2spring

解决方案 »

  1.   

    貌似没有太完美的解决方案,难道用Struts2 就这样了?
      

  2.   

    你把VO分开成几个VO不就行了?修改了哪个VO就update哪个VO
      

  3.   

    目前我的解决方法是,首先将user的所有信息显示在 update页面上,只要是允许修改的字段都可以修改,不允许修改的字段可以隐藏,然后修改后,保存时,将所有信息传到后台,直接update这个VO就可以了,前后台之间的数据交互我采用的json格式
      

  4.   

    update之前要先回显数据,在到达updateUI页面前先数据的信息放到站顶或form种如下代码public String editUI() throws Exception {
    Department department = departmentService.findById(model.getId());
    ActionContext.getContext().getValueStack().push(department);
    return "saveUI";
    }