Struts2-数据验证

验证方式

1.客户端验证:就是使用JavaScript进行数据验证
2.服务器端验证:逻辑验证
注意:为确保安全,一定要进行服务器端验证,日常开发一般客户端+服务器端验证一起使用。

Struts2的服务器端验证

1.编程式验证

必须满足的条件:
a、动作类必须继承ActionSupport
b、在代码中编写验证规则
(1)、针对动作类中的所有动作方法进行验证:

先创建动作类继承ActionSupport,在动作类中覆盖public void validate()方法。

在validate()方法中编写具体的验证规则

问题:此种方法会对所有的动作方法进行验证,即使该动作类不需要进行数据验证,容易产生异常

解决方法1:

给不需要验证的动作方法添加一个@SkipValidation注解。

解决方法2:

遵守书写规范。

给需要验证的方法名前加上validate,方法首字母大写,例如:要给public String register(){ }方法进行数据验证,public String validateRegister(){ }

编程式验证的弊端:硬编码。

2.声明式验证

通过编写验证规则的xml文件。需要验证时,编写xml文件,不要验证,就不写。

优势:解决了编程式验证的弊端

a、针对动作类中的所有动作进行验证:在动作类所在的包中,建立一个 ActionClassName-validation.xml的文件
此种方式针对的是动作类中的所有动作方法
b、针对动作类中的某个动作进行验证:在动作类所在的包中建立一个xml文件,名称为ActionClassName-ActionName-validation.xml

<!-- 当使用ActionClassName-validation.xml来命名文件时,它是一个动作类验证器。会验证动作类中的所有动作方法 -->
<validators>
	<!-- 基于字段的声明式验证 -->
	<!-- field中name属性指定的是表单name属性的取值 -->
	<field name="username">
		<!-- struts2框架为我们集成了很多的内置验证器。requiredstring会验证输入内容是否为空,是否为空字符串。并且去掉左右空格-->
		<field-validator type="requiredstring">
			<message>用户名呢</message>
		</field-validator>
	</field>
</validators>

3.Struts2内置的常用声明式验证器

内置验证器的位置在xwork-core-2.3.15.3.jar\com\opensymphony\xwork2\validator\validator\default.xml中
<validators>
	<!-- 基于字段的声明式验证 -->
	<!-- field中name属性指定的是表单name属性的取值 -->
	<field name="username">
		<!-- struts2框架为我们集成了很多的内置验证器。requiredstring会验证输入内容是否为空,是否为空字符串。并且去掉左右空格-->
		<field-validator type="requiredstring">
			<message>用户名必须存在</message>
		</field-validator>
	</field>
	
	<!-- 基于验证器的验证 -->
	<validator type="requiredstring">
		<!-- 以注入的方式,提供要验证的字段信息 
		setFieldName("password");
		-->
		<param name="fieldName">password</param>
		<message>密码必须输入</message>
	</validator>
</validators>

验证器案例:








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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值