struts2中的数据验证

数据验证

验证的方式:

客户端验证:javascript

服务端验证:逻辑验证(我们的代码)

注意:如果客户端和服务端二选一的话,服务器端的不能省。

实际开发中:客户端+服务端


struts2的服务端数据的验证分为两种:

1.编程式验证

动作类继承ActionSupport

在动作类中覆盖 public void validate()方法

这个方法会验证左右的动作方法  解决方法:

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

2.validate+要验证的动作方法名称  如:validateRegist(),只验证regist()方法

但是,这种方法不推荐,因为这是硬编码.


2.声明式验证(推荐)

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

1.针对动作类中的所有动作进行验证:在动作类所在的包中,建立一个ActionClassName-validation.xml的文件:


UserAction-validation.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC
  		"-//Apache Struts//XWork Validator 1.0.3//EN"
  		"http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">

<validators>
	<!-- 基于字段的声明式验证 -->
	<!-- field中的name属性指定的是表单name属性的取值 -->
	<field name="username">
		<!-- struts2框架为我们集成了很多的内置验证器.requiredstring会验证输入内容是否为空,
		是否为空字符串.并且去掉左右空格 -->
		<field-validator type="requiredstring">
			<message>请填写用户名</message>
		</field-validator>
	</field>
</validators>

2.针对动作类中的某个动作进行验证:在动作类所在的包中建立一个xml文件,名称为ActionClassName-ActionName-validation.xml的文件:

如:ActionClassName-regist-validation.xml

注意:这里的ActionName为配置文件中的action标签的name属性的值,不是动作方法的名称


上面是基于字段的声明式验证,struts2有内置的常用声明式验证器

位置: xwork-core-2.3.15.3.jar\com\opensymphony\xwork2\validator\validator\default.xml

例如:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC
  		"-//Apache Struts//XWork Validator 1.0.3//EN"
  		"http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">

<validators>

	<!-- 基于验证器的验证 -->
	<validator type="requiredstring">
		<!-- 以注入的方式,提供要验证的字段信息
		setFieldName("password");
		 -->
		 <param name="fieldName">password</param>
		 <message>密码必须输入</message>
	</validator>
</validators>	
  		
  		
  		





















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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值