mylazygirl 2009-05-14 16:05
浏览 174
已采纳

struts2和hibernate的po,vo问题衍生

我是初学者,我用的是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,那不就是一个PO从头用到尾么,会产生和显示不能对应的问题啊,所以才需要PO到VO啊,不知我对你的答案的理解对不对
问题补充:
这是vo小于po的情况,要是vo大于po呢?以后碰到在想办法吧
  • 写回答

2条回答 默认 最新

  • chenli348105874 2009-05-14 16:17
    关注

    其实你只要定义一个user就可以了
    你在action里面把数据库里面的user(po)转化成1个新的pojo就可以了
    [code="java"]User userPojo = new User();
    userPojo.setName(user.getName());省略若干
    其实你在页面上操作的是uerPojo 然后要存的时候再拷回去[/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥20 安装 opencv4nodejs 报错
  • ¥15 adb push异常 adb: error: 1409-byte write failed: Invalid argument
  • ¥15 nginx反向代理获取ip,java获取真实ip
  • ¥15 eda:门禁系统设计
  • ¥50 如何使用js去调用vscode-js-debugger的方法去调试网页
  • ¥15 376.1电表主站通信协议下发指令全被否认问题
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
  • ¥15 复杂网络,变滞后传递熵,FDA
  • ¥20 csv格式数据集预处理及模型选择
  • ¥15 部分网页页面无法显示!