struts+spring+hibernate架构中数据对象(PO,POJO,FormBean)的使用心得
2005-05-26 10:58
691 查看
我们知道hibernate最大的优点就是,对于持久层的数据的处理变得非常方便。在这里我们不用在区分是PO,还是POJO,原则上来讲从数据层到界面控制层我们可以使用同样一个VO数据对象,但是在struts层我们通常又使用formbean来保存数据。这样我们需要在对两个数据对象做处理,是在Create/Edit时,我们需要对这两个数据对象进行相互copy.(这两个数据对象我就叫actonform和vo)
今天看了Spring里的一个sample, 把vo做为actionform的一个属性,可以有更简单的方法如下(User的例子) :
User 有 username, password两个属性。
public class User{
private String username;
private String password;
public String getUsername() { return username; }
public void setUsername(String username) { this.username = username; }
public String getPassword() { return password; }
public void setPassword(String password) { this.password = password; }
}
ActionUserForm 有 User 和 actionType两个属性。
public class ActionUserForm {
private User user = new User();
private int actionType ;
public User getUsername() { return user; }
public void setUsername(User user) { this.user = user; }
public int getPassword() { return actionType; }
public void setPassword(int actionType) { this.actionType = actionType; }
}
struts-config.xml中的bean和actio配置这里就不讲了,要说明的是private User user = new User();第一次我是private User user;这样定义的始终成功不了。换成private User user = new User();就ok了。
UserEdit.jsp
...
<html:text property="user.username" />
<html:password property="user.password" />
...
UserAction.java
public ActionForward save(...
...
UserForm userform = (UserForm)actionForm;
bs.save( userform.getUser() );
...
这样不仅是内存中的数据对象少了,对于复杂的数据对象,我们编程也变得更简洁了。PO是通过hibernate同步器产生的,从头到尾真正的数据对象就是PO, formbean是PO加上其他的控制状态什么的。这样就非常方便了
今天看了Spring里的一个sample, 把vo做为actionform的一个属性,可以有更简单的方法如下(User的例子) :
User 有 username, password两个属性。
public class User{
private String username;
private String password;
public String getUsername() { return username; }
public void setUsername(String username) { this.username = username; }
public String getPassword() { return password; }
public void setPassword(String password) { this.password = password; }
}
ActionUserForm 有 User 和 actionType两个属性。
public class ActionUserForm {
private User user = new User();
private int actionType ;
public User getUsername() { return user; }
public void setUsername(User user) { this.user = user; }
public int getPassword() { return actionType; }
public void setPassword(int actionType) { this.actionType = actionType; }
}
struts-config.xml中的bean和actio配置这里就不讲了,要说明的是private User user = new User();第一次我是private User user;这样定义的始终成功不了。换成private User user = new User();就ok了。
UserEdit.jsp
...
<html:text property="user.username" />
<html:password property="user.password" />
...
UserAction.java
public ActionForward save(...
...
UserForm userform = (UserForm)actionForm;
bs.save( userform.getUser() );
...
这样不仅是内存中的数据对象少了,对于复杂的数据对象,我们编程也变得更简洁了。PO是通过hibernate同步器产生的,从头到尾真正的数据对象就是PO, formbean是PO加上其他的控制状态什么的。这样就非常方便了
相关文章推荐
- 燃烧的远征java(三)-Struts+Spring+Hibernate:java的几种对象(PO,VO,DAO,BO,POJO)解释
- 在Struts--hibernate开发框架中,实现formbean与hibernate pojo的自动转换
- Spring+Struts+Hibernate 架构中对Oracle9i中clob字段的处理之--新增数据篇
- Spring+Struts+Hibernate 架构中对Oracle9i中clob字段的处理之--新增数据篇
- 解决了Hibernate+Spring+Struts架构使用OpenSessionInView的问题
- SSH(struts+spring+hibernate)迅速开发--第三章 生成POJO对象和表映射(1)
- Hibernate/Spring/Struts架构使用OpenSessionInView的问题
- 在Struts+Spring+hibernate中,将FormBean与EntityBean进行整合(续)
- SSH(struts+spring+hibernate)迅速开发--第三章 生成POJO对象和表映射(2)
- Hibernate/Spring/Struts架构使用OpenSessionInView的问题
- Hibernate/Spring/Struts架构使用OpenSessionInView的问题
- Hibernate/Spring/Struts架构使用OpenSessionInView的问题
- 在Struts+Spring+hibernate中,将FormBean与EntityBean进行整合
- 【转载】struts+spring+hibernate无法插入数据库数据的问题
- Struts+Spring+Hibernate+Aglets集成架构
- 使用struts+spring+hibernate 组装web应用
- struts+spring+hibernate的web应用 架构搭建
- 结合struts和hibernate谈J2EE架构的数据表示
- 【原创】搭建SSH后通过反向工程(Reverse Engineering)自动生成Hibernate Bean实体和Spring Dao对象详解(图文)
- struts+spring+hibernate用jquery实现数据分页异步加载,页面不刷新