论坛首页 Java企业应用论坛

使用 Webwork2 的 Model 驱动时的问题:

浏览 5427 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2005-04-19  
为什么表单元素都要以 model. 来前缀命名呢?
怎样才能不使用这样的命名方法呢?因为 JavaScript 不认这样的元素。
请高教!多谢!
   发表时间:2005-04-19  
先补习javascript, javascript可以处理任何名字的html元素。
0 请登录后投票
   发表时间:2005-04-19  
glistar 写道
为什么表单元素都要以 model. 来前缀命名呢?
怎样才能不使用这样的命名方法呢?因为 JavaScript 不认这样的元素。
请高教!多谢!


如果用model驱动模型的话就不用这么做了,直接在相应的from field的name用model的相应的name就可以了
0 请登录后投票
   发表时间:2005-04-20  
if(document.fom["user.username"].value=="") {
    alert(' Please input username! ');
}

understand?
0 请登录后投票
   发表时间:2005-04-20  
document.formname.elements["model.abc.def.efg"]
0 请登录后投票
   发表时间:2005-04-20  
楼主的代码一定是从夏昕前辈的《Webwork2开发指南》上看来的吧。

在这里我斗胆指出夏昕前辈该文档中的一个错误:

引用

Webwork2 开发指南
V1.0
Page 6-7

<input type="text" name="model.username" />
<input type="password" name="model.password" />
可以看到,两个输入框的名称均以“model”开头,这是因为在这里我们采用了WebWork
中Model-Driven的Action驱动模式。这一点稍后再做介绍。


其实这么写是没有必要的,这样写就失去了Model-Driven的优势,可以这样写:

<input type="text" name="username" />
<input type="password" name="password" />


这样,在Action如果实现了ModelDriven的话,那么Action中的getModel方法中的那个Object就会被reflection查找setUsername与setPassword方法,并被执行这两个方法,值就是form表单的username与password的值。

而如果Action没有实现ModelDriven的话,那么被reflection查找setUsername与setPassword方法的对象就是Action自己。
0 请登录后投票
   发表时间:2005-04-25  
glistar 写道
为什么表单元素都要以 model. 来前缀命名呢?
怎样才能不使用这样的命名方法呢?因为 JavaScript 不认这样的元素。
请高教!多谢!


不需要以 model. 来前缀命名
0 请登录后投票
   发表时间:2005-04-26  
我的配置是 model前缀去掉就不好用,奇怪!
配置如下:
&lt;action name="login" class="test.action.LoginAction"&gt;
            &lt;result name="success" type="dispatcher"&gt;
                &lt;param name="location"&gt;/login.jsp&lt;/param&gt;
            &lt;/result&gt; 
                 
            &lt; interceptor-ref name="params" /&gt;
            &lt; interceptor-ref name="model-driven" /&gt;
           
&lt;/action&gt;

ONGL stack 中存放的是 model 对象,因为Action实现了 ModelDriven接口,
对 model.userName 的赋值实际上是调用了 getModel().setUserName().
我真的不明白 不写 model 前缀时,是怎么赋的值,请大 家指点。多谢了!
0 请登录后投票
   发表时间:2005-04-26  
先看看ModelDriven接口的说明中:
Note: The ModelDrivenInterceptor must come before the both StaticParametersInterceptor and  ParametersInterceptor if you want the parameters to be applied to the model.

&lt; interceptor-ref name="model-driven" /&gt;
&lt; interceptor-ref name="params" /&gt;
掉个吧!
Interceptor是好用,但是讲究顺序的!
0 请登录后投票
   发表时间:2005-04-26  
感谢楼上的大哥!我困惑好久的东西终于解决了!
0 请登录后投票
论坛首页 Java企业应用版

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