当前位置:编程学习 > JAVA >>

Struts2前台页面VO 和hibernate 的问题

有个疑问,想问问大家怎么做比较合理,具体需求如下:
页面中比如有两个输入字段,字段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,如果没有就还保留着数据中的字段内容,但这个不知道怎么做好,
希望大家给指点下。。。。。。。。。。。。 Hibernate session j2e Struts2 spring --------------------编程问答-------------------- 以我目前的水平,我也是用隐藏域的 --------------------编程问答-------------------- 貌似没有太完美的解决方案,难道用Struts2 就这样了? --------------------编程问答-------------------- 怎么没人回答啊? --------------------编程问答-------------------- 你把VO分开成几个VO不就行了?修改了哪个VO就update哪个VO --------------------编程问答-------------------- 目前我的解决方法是,首先将user的所有信息显示在 update页面上,只要是允许修改的字段都可以修改,不允许修改的字段可以隐藏,然后修改后,保存时,将所有信息传到后台,直接update这个VO就可以了,前后台之间的数据交互我采用的json格式 --------------------编程问答-------------------- 恩,这也是一种方式,我是有没有简捷的办法 --------------------编程问答--------------------
引用 4 楼 u010412619 的回复:
你把VO分开成几个VO不就行了?修改了哪个VO就update哪个VO

这样比较麻烦,每次我都得创建多个VO --------------------编程问答-------------------- update之前要先回显数据,在到达updateUI页面前先数据的信息放到站顶或form种如下代码public String editUI() throws Exception {
Department department = departmentService.findById(model.getId());
ActionContext.getContext().getValueStack().push(department);
return "saveUI";
}
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,