Java

本类阅读TOP10

·使用MyEclipse开发Struts框架的Hello World!(录像1)
·hibernate配置笔记
·AOP编程入门--Java篇
·linux下Tomcat 5.0.20 与 Apache 2 安装/集成/配置
·在win2003下整合了整合Tomcat5.5+ apache_2.0.53+ mod_jk_2.0.47.dll
·构建Linux下IDE环境--Eclipse篇
·Jsp 连接 mySQL、Oracle 数据库备忘(Windows平台)
·ASP、JSP、PHP 三种技术比较
·Tomcat5.5.9的安装配置
·AWT GUI 设计笔记(二)

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
struts+spring+hibernate架构中数据对象(PO,POJO,FormBean)的使用心得

作者:未知 来源:月光软件站 加入时间:2005-6-5 月光软件站

        我们知道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加上其他的控制状态什么的。这样就非常方便了




相关文章

相关软件