Web 开发的初学者;目前关注SSH开发.有如下疑问,
实体Bean一般认为是用来存数据库的。比如有个实体bean, User类public class user {
    private String name;
    private String userID;
    private String password;
    private List<User> friends;
    ....忽略get, set方法
}
现在我有个页面,只需要显示User的,name跟 他的friends的name, 那现在问题是,
应该直接放回这个完整的User对象 给actionForm去显示呢, 还是又new一个一个新类,专门负责给界面去显示,如:
public class userUI  {
    private String name;
    private List<String> friendsName;
........
 
}

解决方案 »

  1.   

    EL表达式 显示  不是更简洁?${User.name}
      

  2.   

    To kaoh1631:
       EL的前提是这个User对象已经在ActionFrom中了吧(界面相关)。 我现在问题是这个User里面不是所有的东西都要拿来显示的,生成一个完整的User对象好像有点浪费。
      

  3.   

    不一定要用form啊,可以用action本身的属性,你可以在action里面定义属性然后加上get/set方法,但是前提你用的要是struts2
      

  4.   

    谢谢  mochibing, 
    Form也好,action也好,其实我真正想问的,这个form或是action应该引用一个User还是仅仅一个UserUI?
    (者两个类在开始有写。)
      

  5.   

    用hibernate之类的话,user一般是拿来持久化用,页面显示提交的form,对应另外一个userForm.也就是你现在的userUI
      

  6.   


    用action属性作为输入就不存在这种问题了,因为你可以很灵活的进行增减属性而不需要去定义一个form;如果你使用form的话,那么处于面向对象和系统维护的角度,应该统一是用一个接口
      

  7.   

    一般不要直接取出来显示到界面上,如果你考虑项目的扩展性的话楼主的这个user应该是属于dao层的东西,是model。如果这个直接拿出来显示到界面上的话,会是ui对dao层有直接的依赖关系,
    解决这个问题的最佳途径是些dto。 通过它来完成对ui的支持就会减少耦合程度。也就是楼主的猜测,写另外一个对象来完成在UI的显示,这样做的坏处是增加了类的数量当然如果你的项目小的话,UI相对比较简单的话,没有多大的扩展性的话,也无须考虑这么多。
      

  8.   

    我以前的作法,就是楼主最后一句说的,BO covert to VO,新建一个VO专门用于页面显示,里面的字段全是针对你页面显示来放置,谁有更好的建议?
      

  9.   

    是可以的   我们直接把一个实体对象作为一个actionForm的属性  再封装   页面上 需要传值的地方的控件名称全部用类似USER.NAME方式来命名  这样 可直接传递到实体类再封装到actionForm