struts2中的验证框架

首先新建一个.xml文件

放在要验证的action类同级目录下。例如要验证UserAction类。则新建一个UserAction-validation.xml文件。在这里面编写验证框架。

有两种编写方式:
1.	<validator type="requiredstring">
	<!-- 一个里面写一个验证,不建议用这个,不利于将来的维护。 -->
		<param name="filedname">username</param><!--要验证的用户名-->
		<message>用户名不能为空</message>
	</validator>
2.<!-- 建议用这个验证编写 方式。一个属性里可以有多个验证器 -->
	<field name="user.username">
		<field-validator type="requiredstring">
			<message>登陆的用户名不能为空</message>
		</field-validator>
		<field-validator type="regex"><!-- 正则表达式验证 -->
			<param name="expression">^[a-zA-Z][a-zA-Z0-9]{3,14}$</param>
			<message>登陆的用户名必须以字母开头,字母和数字下划线,4到14位组成</message>
		</field-validator>
	</field>

3.如果要对一个类中的多个方法进行验证并将其分开写?该怎么办呢?例如一个userAction类中有两个方法.login方法和register方法,在当前action类中新建一个文件:userAction-login-validation.xml,userAction-login-validation.xml,在这两个文件里写验证代码。
注意这里的login和register方法并不是你的方法名。而是指的你的struts.xml文件中的action=“login” 或action="register" 这两个名字

4.又如果你要进行代码复用。就是两个方法有相同的验证,该怎么办呢?这时。你可以把验证的对象由属性改为对象。在你的实体类中新建一个文件。如你有一个user类。要对其验证用户名,密码,年龄。其中你的login方法和register方法是都要验证用户名和密码。可以在你的实体类的同级目录下新建一个文件user-validation.xml文件。在里面写公共的验证代码,然后再不同的方法的文件中写下如下代码:
<field name="user">
	<field-validator type="visitor">
		<message></message>
	</field-validator>
</field>
其中name="user",必须是你的userAction类中的属性。并提供getter,setter方法。
就可以进行复用了。最后一点要主意的是:在login.jsp页面和register.jsp页面中要添加<s:fielderror/>因为他返回的是一个属性级别的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值