好几个项目开发中,都用到了struts2的模型驱动:
public class MyAction extends ActionSupport implements ModelDriven<TestBean>
通常TestBean都是对应数据库中到一个表,也就是 一个action对应一个pojo;
那么我现在的问题是:
当我的一个编辑页面上,需要编辑到内容涉及到两张及两张以上到表到内容的时候,例如我到编辑页面上出现了 TestBean 的属性,同时还有 OtherBean 的属性,保存的方法 update() 在上面 MyAction 中,但是该action的模型驱动只包含 TestBean,如何也将 OtherBean 的属性值也自动获取呢?
因为该action中 的 getModel() 方法只拿 TestBean 
public TestBean getModel() {
if(this.testBean== null){
this.testBean= new TestBean ();
}
return testBean;
}

解决方案 »

  1.   

    再有,在struts2中,在action中不使用 模型驱动,同样也能获取TestBean的属性值,而且对两个或两个以上到pojo对象都能获取到,而 ModelDriven<OnePojo> 只能指定一个pojo;那需要同时修改两张表的时候,如 OnePojo 和 OtherPojo ,分别使用模型驱动与属性驱动 的区别在哪里呢?
      

  2.   

    上面两个说的编辑两张表的属性 都是在页面使用jsp的时候。然而现在,我使用的是 Ext ,刚才我也测试了,在使用Ext作为界面的时候,只有在action使用模型驱动ModelDriven 的时候,才能获取到pojo对象的属性值;在没有使用模型驱动的情况下,方法里面会报该对象为 null  .很不解啊! 
    希望有人能帮我解解这些疑惑!
    该贴分数不够的话,另外开个贴子给分。
      

  3.   

    public TestBean getModel() {
    if(this.testBean== null){
    this.testBean= new TestBean ();
    }
    return testBean;
    }
    你不觉得这个if是多余的吗.? 这个判断modelDriven拦截器会做的.!
    -------
    你这样的需求, 只有是在Action中再定义otherBean的属性了! 我记得模型驱动只能有一个.!
      

  4.   

    struts2中模型驱动只能返回一个实体,貌似只能麻烦点在后台根据表关联关系去拿其他的实体
      

  5.   

    晕,我也遇到同样的问题了!就是只有一个bean能通过modeldriven从请求页面拿到属性值,另外一个想通过属性驱动获取的话,是null,郁闷。
      

  6.   

    可以在创建一个Model包含所用的要用的属性,然后再Action中在对其进行分离,将值放到不同的model中
    针对两个Model分别执行Update。