(二十)验证增强

        实际上在验证框架里面还可以做很多事情,例如:验证数字的范围是否正确,长度是否合适,以及发布日期是否满足,正则操作是否可用等等.

范例:编写NewsAction-validation.xml文件,完善验证

<validators>
	<field name="news.nid">
			<field-validator type="int">
			<param name="min">10</param>
			<param name="max">20</param>
			<message>[验证框架]新闻编号只能够输入${min}-${max}之间!</message>
		</field-validator>
		<field-validator type="requiredstring">
			<message>[验证框架]新闻编号不允许为空</message>
		</field-validator>
	</field>
	<field name="news.content">
		<field-validator type="requiredstring">
			<message>[验证框架]新闻内容不允许为空!!!!</message>
		</field-validator>
	</field>
	<field name="news.title">
		<field-validator type="requiredstring">
			<message>新闻标题不允许为空</message>
		</field-validator>
		<field-validator type="stringlength">
			<param name="minlength" >6</param>
			<param name="maxlength" >15</param>
			<message>新闻标题输入错误,其长度应该在${minlength}-${maxlength}</message>
		</field-validator>
		<field-validator type="regex">
			<param name="trim">true</param><!-- 去掉首尾空格 -->
			<param name="expression"><![CDATA[\w+\.\w+\.\w+]]></param>
			<message>请输入正确的网址内容</message>
	</field-validator>
	</field>
	
	
</validators>

        即便现在可以进行验证了,那么问题依然存在,它只是横向替代validate().但是如果数据类型输入有问题,那么依然会在后台出现错误,并且此时会显示的错误信息是:"Invalid field value for field "参数名称".",这样的信息是可以修改的,只需要修改Messages.properties文件即可.

范例:修改Messages.peoperties文件,增加错误显示

invalid.fieldvalue.news.nid=\u65B0\u95FB\u7F16\u53F7\u5FC5\u987B\u662F\u6570\u5B57! 

名称必须按照指定标准来写,

        以上信息实际上是数据类型转换的错误信息,这样的错误信息是在出错后自动使用的,也想fieldErrors中保存.

        总结

        不管是验证方法还是验证框架,最为核心的概念:
            ●所有的错误信息都使用fieldErrors()方法返回,使用addFieldError()添加错误
            ●所有的验证框架都有一个最本质的问题--数据赋值之后执行.
正因为验证框架的执行顺序有问题,所以在时间的开发之中,它只能作为二号验证器使用,或者就不使用..
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值