当校验文件的取名为ActionClassName-validation.xml时,会对 action中的所有处理方法实施输入验证。如果你只需要对action中的某个action方法实施校验,那么,校验文件的取名应为:ActionClassName-ActionName-validation.xml,其中ActionName为struts.xml中action的名称。例如:在实际应用中,常有以下配置:
<action name="
user_*
" class="cn.itcast.action.UserAction" method="{1}“ >
<result name="success">/WEB-INF/page/message.jsp</result>
<result name="input">/WEB-INF/page/addUser.jsp</result>
</action>
UserAction
中有以下两个处理方法:
public String
add
() throws Exception{
....
}
public String
update
() throws Exception{
....
}
要对
add()
方法实施验证,校验文件的取名为:
UserAction-
user_add
-validation.xml
要对
update()
方法实施验证,校验文件的取名为:
UserAction-
user_update
-validation.xml
基于XML校验的一些特点
当为某个
action
提供了
ActionClassName-validation.xml
和
ActionClassName-ActionName-validation.xml
两种规则
的校验文件时,系统按下面顺序寻找校验文件:
1
。
AconClassName-validation.xml
2
。
ActionClassName-ActionName-validation.xml
系统寻找到第一个校验文件时还会继续搜索后面的校验文件,当搜索到所有校验文件时,会把校验文件里的所有
校验规则汇总,然后全部应用于
action
方法的校验。如果两个校验文件中指定的校验规则冲突,则只使用后面文
件中的校验规则。
当
action
继承了另一个
action
,父类
action
的校验文件会先被搜索到。
假设
UserAction
继承
BaseAction
:
<action name="
user
" class="cn.itcast.action.UserAction" method="{1}">
</action>
访问上面
action
,系统先搜索父类的校验文件:
BaseAction-validation.xml
,
BaseAction-user-validation.xml
,接
着搜索子类的校验文件:
UserAction-validation.xml
,
UserAction-user-validation.xml
。应用于上面
action
的校验
规则为这四个文件的总和。