struts2 短路校验(客户端校验)


在没有输出用户名的情况下,校验出多个警告,我们要的效果应该是,没有输入时,只出现第一个!
 

<!-- 校验文件的根元素 -->
<validators>
	<!-- 校验Action的name属性 -->
	<field name="name">
		<!-- 指定name属性必须满足必填规则 -->
		<field-validator type="requiredstring" short-circuit="true">
			<param name="trim">true</param>
			<!-- 如果校验失败,输出name.requried对应的国际化信息 -->
			<message>${getText("name.requried")}</message>
		</field-validator>
		<!-- 指定name属性必须匹配正则表达式 -->
		<field-validator type="regex">
			<param name="expression"><![CDATA[(\w{4,25})]]></param>
			<!-- 如果校验失败,输出name.regex对应的国际化信息 -->
			<message>${getText("name.regex")}</message>
		</field-validator>
	</field>
	<!-- 校验Action的pass属性 -->
	<field name="pass">
		<!-- 指定pass属性必须满足必填规则 -->
		<field-validator type="requiredstring" short-circuit="true">
			<param name="trim">true</param>
			<!-- 如果校验失败,输出pass.requried对应的国际化信息 -->
			<message>${getText("pass.requried")}</message>
		</field-validator>
		<!-- 指定pass属性必须满足匹配指定的正则表达式 -->
		<field-validator type="regex">
			<param name="expression"><![CDATA[(\w{4,25})]]></param>
			<!-- 如果校验失败,输出pass.regex对应的国际化信息 -->
			<message>${getText("pass.regex")}</message>
		</field-validator>
	</field>
	<!-- 指定age属性必须在指定范围内-->
	<field name="age">
		<field-validator type="int">
			<param name="min">1</param>
			<param name="max">150</param>
			<!-- 如果校验失败,输出age.range对应的国际化信息 -->
			<message>${getText("age.range")}</message>
		</field-validator>
	</field>
	<!-- 指定birth属性必须在指定范围内-->
	<field name="birth">
		<field-validator type="date">
			<!-- 下面指定日期字符串时,必须使用本Locale的日期格式 -->
			<param name="min">1900-01-01</param>
			<param name="max">2050-02-21</param>
			<!-- 如果校验失败,输出birth.range对应的国际化信息 -->
			<message>${getText("birth.range")}</message>
		</field-validator>
	</field>
</validators>

  

修改后以上校验规则还是显示如下:

 

这是校验器短路的效果



 上图使用的是服务器端校验,可见没有下图的效果好!

 


上图是使用客户端校验器风格,在(s:form 标签 增加 validate="true")

 

效果是:当不输入时,只有输出输入用户名(如上图),当输入用户名不合要求时(如下图):



 

完整代码附件中:


 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值