问题:如果一个Action类需要应对多个action请求,且每个action 请求的验证规则有不一样,该如何处理?
> 为每一个不同的 action 请求定义其对应的验证文件: ActionClassName_AliasName_validation.xml
> 不带别名的配置文件: ActionClassName-validation.xml 中的验证规则依然会发生作用. 可以把每个 action 公共的验证规则配置在其中. 但需要注意的是, 只适用于某一个 action 的请求的验证规则就不要这里再配置了.
示例如下
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 我是分割线~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
项目结构
类
person 类 和Action 类详见:如何进行声明式验证之字段验证? 中的 person 类 和Action
验证器:
爸爸:公用验证器 TestAgeValidation-validation.xml 这里面没有别名
1
130
10
50
儿子2:TestAgeValidation-testAge2-validation.xml
51
90
国际化资源文件
基类: nihao.properties
username=UserName
password=Password
submit=Submit
time=Time:{0}
error.int=Age needs to be between ${min} and ${max}
age=Age
中文 :nihao_zh_CN.properties
username=\u7528\u6237\u540D
password=\u5BC6\u7801
submit=\u63D0\u4EA4
time=\u65F6\u95F4:{0}
time2=\u65F6\u95F4:${birth}
error.int=\u5E74\u9F84\u9700\u8981\u5728 ${min} \u548C ${max}\u4E4B\u95F4
age=\u5E74\u9F84
英文:nihao_en_US.properties
username=UserName
password=Password
submit=Submit
time=Time:{0}
time2=Time:${birth}
error.int=Age needs to be between ${min} and ${max}
age=Age
false
/validation.jsp
/validation.jsp
/validation.jsp
/validation2.jsp
/validation.jsp
/validation.jsp
index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
Insert title here
To validation
To validation2
validation.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
Insert title here
中文
English
主页
validation2.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
Insert title here
fieldErrors.age[0]: ${fieldErrors.age[0] }
fieldErrors.age[1]: ${fieldErrors.age[1] }
s:fielderror:
success.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
Insert title here
Age:
恭喜你有为青年!
通过实验 我们知道了 爸爸验证器 TestAgeValidation-validation.xml 和 儿子验证器 TestAgeValidation-testAge1-validation.xml
与 TestAgeValidation-testAge2-validation.xml ,分别有什么作用,及名命名规则:
爸爸的命名规则:ActionClassName_validation.xml
儿子的命名规则:ActionClassName_AliasName_validation.xml
现在孩子都是宝贝蛋 ,因此要放在父母中间,这样安全!