我是初学者,我用的是struts2。当hibernate处理完后生成一个结果集(这个是po吧),我在action中获得这个结果集,那么我应该把这个po转化成vo对吧,看过一个类似问题的解答,借住他的代码。
这个是PO
public class User { private Integer id; private String firstName; private String lastName; private Integer age; set(),get()方法略 }
这个是VO类用于显示
public class VOUser { private String fullname; private int age; set(),get()方法略 }
Action代码
public class HelloWorld extends ActionSupport { private VOUser user; public VOUser getUser() { return user; } public String execute() throws Exception { User poUser = null; /** *****下面这块实现从poUser到VOUser转化****** */ user = new VOUser(); user.setFullname(poUser.getFirstName() + " " + poUser.getLastName()); user.setAge(poUser.getAge()); return SUCCESS; } }
这时我的问题出来了
但是一个Action中不光写一个显示的方法啊,增删查改都有啊
public class HelloWorld extends ActionSupport { private VOUser user; public VOUser getUser() { return user; } public String list() throws Exception { // 内容同上面的Action中的excute()方法 } public String add() throws Exception { // 增加数据 } …… }
这里增加数据的时候用VOUser已经不够用了,必须要User(PO)才行,请问难道我需要在这个Action中定义两个成员变量么,一个VOUser用于显示,一个User用于插入操作么?
其实你只要定义一个user就可以了
你在action里面把数据库里面的user(po)转化成1个新的pojo就可以了
[code="java"]User userPojo = new User();
userPojo.setName(user.getName());省略若干
其实你在页面上操作的是uerPojo 然后要存的时候再拷回去[/code]
[code="java"]# User userPojo = new User(); [/code]这里new出来的其实就是个vo啊
userPojo你只需要把你想显示的property塞给他就可以了