struts2中xml文件校验方式
?
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
蕃薯耀 2015年7月12日 11:17:34 星期日
?
?
第一步:
在Action所在的包,新建一个名称为“Action名称-validation.xml”的xml文件。
如:LoginAction.java对应的校验xml为LoginAction-validation.xml
?
?
?
第二步:配置LoginAction-validation.xml文件
例如在action定义了两个参数变量
private String userName;
private String userPassword;
?
需要对这两个变量进行校验,则需要LoginAction-validation.xml文件进行相应的配置
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator 1.0//EN" "http://struts.apache.org/dtds/xwork-validator-1.0.2.dtd"> <validators> <field name="userName"> <field-validator type="requiredstring"> <message>用户名为必填项。</message> </field-validator> <field-validator type="stringlength"> <param name="maxLength">5</param> <param name="minLength">2</param> <message>用户名的长度为${minLength}到${maxLength}个字符。</message> </field-validator> </field> <field name="userPassword"> <field-validator type="requiredstring"> <message>密码为必填项。</message> </field-validator> <field-validator type="stringlength"> <param name="maxLength">8</param> <param name="minLength">6</param> <message>密码的长度为${minLength}到${maxLength}个字符。</message> </field-validator> </field> </validators>
?
field-validator type的定义为:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator Definition 1.0//EN" "http://struts.apache.org/dtds/xwork-validator-definition-1.0.dtd"> <!-- START SNIPPET: validators-default --> <validators> <validator name="required" class="com.opensymphony.xwork2.validator.validators.RequiredFieldValidator"/> <validator name="requiredstring" class="com.opensymphony.xwork2.validator.validators.RequiredStringValidator"/> <validator name="int" class="com.opensymphony.xwork2.validator.validators.IntRangeFieldValidator"/> <validator name="long" class="com.opensymphony.xwork2.validator.validators.LongRangeFieldValidator"/> <validator name="short" class="com.opensymphony.xwork2.validator.validators.ShortRangeFieldValidator"/> <validator name="double" class="com.opensymphony.xwork2.validator.validators.DoubleRangeFieldValidator"/> <validator name="date" class="com.opensymphony.xwork2.validator.validators.DateRangeFieldValidator"/> <validator name="expression" class="com.opensymphony.xwork2.validator.validators.ExpressionValidator"/> <validator name="fieldexpression" class="com.opensymphony.xwork2.validator.validators.FieldExpressionValidator"/> <validator name="email" class="com.opensymphony.xwork2.validator.validators.EmailValidator"/> <validator name="url" class="com.opensymphony.xwork2.validator.validators.URLValidator"/> <validator name="visitor" class="com.opensymphony.xwork2.validator.validators.VisitorFieldValidator"/> <validator name="conversion" class="com.opensymphony.xwork2.validator.validators.ConversionErrorFieldValidator"/> <validator name="stringlength" class="com.opensymphony.xwork2.validator.validators.StringLengthFieldValidator"/> <validator name="regex" class="com.opensymphony.xwork2.validator.validators.RegexFieldValidator"/> <validator name="conditionalvisitor" class="com.opensymphony.xwork2.validator.validators.ConditionalVisitorFieldValidator"/> </validators> <!-- END SNIPPET: validators-default -->
?
?
第三步:配置struts.xml文件,设置校验不通过的返回页面
<result name="input">login.jsp</result>
具体如下:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <constant name="struts.devMode" value="true" /> <package name="strutsTest" extends="struts-default"> <action name="login" class="com.struts2.action.LoginAction"> <result name="success">userIndex.jsp</result> <result name="input">login.jsp</result> <result name="invalid.token">token.jsp</result> <interceptor-ref name="token"></interceptor-ref> <interceptor-ref name="defaultStack"></interceptor-ref> </action> </package> </struts>
?
第四步:
在页面显示校验错误信息
<s:fielderror cssStyle="color:red;"></s:fielderror>
例子如下:
<s:fielderror cssStyle="color:red;"></s:fielderror> <s:form action="login" method="post" theme="simple"> 用户名:<s:textfield name="userName"></s:textfield><br/> 密码:<s:password name="userPassword"></s:password><br/> <s:token></s:token> <input type="submit" value="登录" /><br/> </s:form>
?
?
?
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
蕃薯耀 2015年7月12日 11:17:34 星期日
?
?
?
?
原文:http://fanshuyao.iteye.com/blog/2226625