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 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 用matlab 设计一个不动点迭代法求解非线性方程组的代码
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 oracle集群安装出bug
  • ¥15 关于#python#的问题:自动化测试