struts2检验框架汇总


Struts2 的验证规则大概有以下数种:

required:必填校验器
requiredstring:必填字符串校验器
int:整数校验器
double:双精度浮点数校验器
date:日期校验器
expression:表达式校验器
fieldexpression:字段表达式校验器
email:电子邮件校验器
url:网址校验器
visitor:Visitor校验器
conversion:转换校验器
stringlength:字符串长度校验器
regex:正则表达式校验器

常用的验证规则:

1。必填检验
<validators>
<field name="username">
<field-validator type="required">
<message>指定检验失败的提示信息</message>
</field-validator>
</field>
</validators>


2。必填字符串检验
<validators>
<field name="username">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>指定检验失败的提示信息</message>
</field-validator>
</field>
</validators>


3。整数检验器/浮点检验
<validators>
<field name="age">
<field-validator type="int">
<param name="min">1</param>
<param name="max">150</param>
<message>年纪必须在1到150之间</message>
</field-validator>
</field>
</validators>


4。日期检验
<validators>
<field name="birth">
<field-validator type="date">
<param name="min">1900-01-01</param>
<param name="max">2050-02-21</param>
<message key="birth.range"/>
</field-validator>
</field>
</validators>


5.字段表达式检验器(要求指定字段满足一个逻辑表达式)
<validators>
<field name="re_pass">
<field-validator type="fieldexpression">
<!--指定逻辑表达式 -->
<param name="expression"> (pass eq re_pass)</param>
<message>密码必须和确认密码相等</message>
</field-validator>
</field>
</validators>


6.邮件地址校验
<validators>
<field name="email">
<field-validator type="email">
<message>你的电子邮件地址必须是一个有效的电邮地址</message>
</field-validator>
</field>
</validators>


7。网址 检验
<validators>
<field name="url">
<field-validator type="url">
<message>你的主页地址必须是一个有效的网址</message>
</field-validator>
</field>
</validators>


8.字符串长度检验
<validators>
<field name="user">
<field-validator type="stringlength">
<param name="minlength">4</param>
<param name="maxlength">20</param>
<message>你的用户名长度必须在4到20之间</message>
</field-validator>
</field>
</validators>


9.正则表达式检验
<validators>
<field name="user">
<field-validator type="regex">
<param name="expression_r"><![CDATA[(\w{4,25})]]></param>
<message>您输入的用户名只能是字母和数组,且长度必须在4到25之间</message>
</field-validator>
</field>
 
 validation文件命名规则:action类名-访问的方法名-validation.xml 例如:DemoAction-demo_save--validation.xml
位置:与action类平级
 
<?xml version="1.0" encoding="UTF-8"?>                                   
<!DOCTYPE validators PUBLIC                                              
        "-//OpenSymphony Group//XWork Validator 1.0.2//EN"               
        "//www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd"> 
<validators> 
	<field name="name"> 
		<field-validator type="requiredstring"> 
			<param name="trim">true</param>  
			<message>姓名不能为空</message>
		</field-validator>  
		<field-validator type="stringlength">
	       <param name="minLength">4</param>
	       <param name="maxLength">10</param>
	       <message>姓名 长度必须为4-10之间</message>
     	</field-validator>
	</field>

 
	<field name="address"> 
		<field-validator type="requiredstring"> 
			<param name="trim">true</param>
			<!-- 出错信息 -->
			<message>地址不能为空</message>
		</field-validator> 
		<field-validator type="stringlength">
	       <param name="minLength">4</param>
	       <param name="maxLength">10</param>
	       <message>地址 长度必须为4-10之间</message>
     	</field-validator> 
	</field>
	
	
</validators>  
前端jsp文件案例:
<!--inputResultName属性为实现ValidationWorkflowAware接口覆写属性
解决一个action中多个方法需要检验时 
检验失败后都只返回input视图的局限性。
具体方法为:在action中implements ValidationWorkflowAware
定义inputResultName属性,编写set方法 ,覆写其get方法
 -->
<s:form action="demo/demo_save.action?inputResultName=saveInput" theme="simple" validate="true">
		<table>
			<tr>
				<td>用户名</td>
				<td>
					<s:textfield  name="name"></s:textfield>
					
				</td>
				<td>
					<s:fielderror  fieldName="name" cssStyle="color:red;list-style: none;margin: 0px;"></s:fielderror>
<!-- 只有当spring设置action bean不为单例模式时(增加 scope="prototype" 属性),该错误提示不会累加显示。或者在action中实现com.opensymphony.xwork2.Preparable接口,在实现方法中调用clearErrorsAndMessages()方法也可以去掉重复信息  -->			</td>
			</tr>
			<tr>
				<td>性别</td>
				<td>
					<s:select list="{'男','女'}" name="sex"></s:select>
					
				</td>
			</tr>
			<tr>
				<td>地址</td>
				<td>
					<s:textfield  name="address" ></s:textfield> 
				</td>
				<td>
					<s:fielderror  fieldName="address" cssStyle="color:red;list-style: none;margin: 0px;"></s:fielderror>
				</td>
			</tr> 
		</table> 
      	 <s:submit value="注册" ></s:submit>
	</s:form> 



 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值