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条)

报告相同问题?

悬赏问题

  • ¥15 slam rangenet++配置
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制
  • ¥20 usb设备兼容性问题
  • ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊