论坛首页 Java企业应用论坛

webwork model driven的一个问题

浏览 11456 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2005-04-20  
基本上是两个一起用.
0 请登录后投票
   发表时间:2005-04-20  
我说的例子里,Model就是Customer

有什么不对吗?
0 请登录后投票
   发表时间:2005-04-20  
只能说我是对 Readonly的看法的意见,和你的问题有点距离
0 请登录后投票
   发表时间:2005-04-20  
getModel() {
    return new Customer();
}

就可以了,什么那么多属性? 你用过model driven没有。。。

我做法的不过是

getModel() {
   return clazz.newInstance();
}
0 请登录后投票
   发表时间:2005-04-20  
是你没有理解我的意思。

我是想说在这种情况下还是用Model-Driven好,也就是你的做法。
是针对readonly说Model-Driven没有用说的。

没有矛盾。
0 请登录后投票
   发表时间:2005-04-21  
楼上的,你的关键问题在于,对什么叫做ognl不理解,进而对model-driven的理解也有偏差。
0 请登录后投票
   发表时间:2005-04-21  
这和ognl有什么关系? 我只是讨论这种模式而已,在STRUTS里可以做同样的工作,我现在就是自己写了一个Class,自动把Request里的所有同名的属性赋给指定的Object,而现在是Webwork帮你做了。

从实际的角度来说,客户资料肯定会对应一个Customer类的,而你的CustomerAction里又重复定义了同样的Field,这显然是重复的。

有的时候还是自己写的东西灵活一些,比如我上次问的问题还没有回答:如果页面的内容包含了2个Model,该如何处理,getModel只能返回一个Object,如果我自己做的话,就可以分别往2个Object里注入数据。
0 请登录后投票
   发表时间:2005-04-21  
我已经说了,你对什么叫ognl,什么叫valuestack,什么叫Action中的成员变量还没有搞清楚,你上面所说的,完全可以通过ognl和webwork的拦截器来解决,根本不需要实现ModelDriven接口。
0 请登录后投票
   发表时间:2005-04-21  
我的确是刚开始准备用Webwork。原来用的是Struts所以自己写了那些东西,这也是我想用WW2 的原因之一(有些我想改进的,ww2已提供了)。

但你如何解释下面的WW2 的源码?

public class ModelDrivenInterceptor extends AroundInterceptor {
    //~ Methods ////////////////////////////////////////////////////////////////

    protected void after(ActionInvocation dispatcher, String result); throws Exception {
    }

    protected void before(ActionInvocation invocation); throws Exception {
        Action action = invocation.getAction();;

        if (action instanceof ModelDriven); {
            ModelDriven modelDriven = (ModelDriven); action;
            OgnlValueStack stack = invocation.getStack();;
            stack.push(modelDriven.getModel(););;
        }
    }
}


rootsoso也说过,
引用
我试过可以的,OGNL可以自动的在中根据表单中user.userName这个field而在stack中转化为getUser().getUserName(),然后填充这个user的userName的属性的值


这也是我比较疑惑的地方,好像不是很严谨,不管你是怎么定义的,一股脑把数据都塞给你。

还有个问题,不知道你怎么看的,如果页面上的数据包含了2个Model的数据如何解决?建一个大的包含2个Model 属性的新Model?还有返回时的数据呢?更有可能多个Model了。
0 请登录后投票
   发表时间:2005-04-21  
如果是前面提到的这种用法,我觉得和Model-Driven可以认为是一样的了,只是名称不同,在页面使用者角度上看都一样。

引用
java代码: 

public class UserAction {
       
        private User user = new User();

        public User getUser(){
                  return user;
        }

        // Your CRUD operation
        .......

}





然后在页面上使用:
java代码: 


<form name="form1" action="userAction.action">
<input type="text" name="user.name">
<input type="password" name="user.password">
<input type="submit" value="OK">
</form>


0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics