使用DispatchAction使得程序员能够大大减少action class的数量,但是在和Validation框架配合使用时,可能会遇到这样的问题:
程序员的本意是只有在action中的某个方法中才使用validation框架校验,但是只要把struts-config.xml中 <action />标签中的validate设为true,那么进入该action的所有方法之前都会进行校验,很痛苦。现在有两个办法:
1,在stuts-config.xml中对一个class 配多个<action/>标签, 比如:
<action path="/saveUser" validate=true ..... type="UserAction" />
<action path="/initUser" validate=false..... type="UserAction" />
只在需要的action里将validate配成true
当然这只是权宜之计。
2:在validation.xml 中将form的name设置成需要的进行校验的action的path
这样只有在save()方法调用时才会校验。
update:除了这个,还有另外一个解决方法:
令struts-config.xml中的validate=false,然后在自己的action中需要校验的地方追加以下代码:
程序员的本意是只有在action中的某个方法中才使用validation框架校验,但是只要把struts-config.xml中 <action />标签中的validate设为true,那么进入该action的所有方法之前都会进行校验,很痛苦。现在有两个办法:
1,在stuts-config.xml中对一个class 配多个<action/>标签, 比如:
<action path="/saveUser" validate=true ..... type="UserAction" />
<action path="/initUser" validate=false..... type="UserAction" />
只在需要的action里将validate配成true
当然这只是权宜之计。
2:在validation.xml 中将form的name设置成需要的进行校验的action的path
<formset> <form name="/user.do?method=save"> <field>.... </filed> </form> </formset>
这样只有在save()方法调用时才会校验。
update:除了这个,还有另外一个解决方法:
令struts-config.xml中的validate=false,然后在自己的action中需要校验的地方追加以下代码:
ActionMessages errors = form.validate(mapping, request);//在需要的地方调用validate()方法,其中validate()方法的校验规则已经定义在validation.xml中了
if(!errors.isEmpty()){
saveErrors(reqeust, errors);
return mapping.getInputForward();
}
- 18:03
- 浏览 (83)
- 论坛浏览 (328)
- 评论 (1)
- 分类: Java
- 相关推荐
最新评论
-
sourceforge上不去了,什 ...
f u c k G FW
-- by openeyes -
Compass的SearchableRefe ...
晕,搜问题搜到自己这里了。。。
-- by NicholasBugs -
DispatchAction 和DynaVa ...
可以用MappingDispatchAction.
-- by dmewy -
spring struts velocity ...
找到一个方案:参照http://www.ibm.com/developerwor ...
-- by NicholasBugs -
spring struts velocity ...
这样的配置真啰嗦,还不如直接用spring MVC.
-- by slaser







评论排行榜