Struts2学习总结 ---- 数据校验

数据校验
数据校验流程
Struts2学习总结 ---- 数据校验 - stanley - 小老头
 
Struts2中的数据校验方式:
1.validate()方法:
/** 
 *  这个方法中的代码在该Action类中的所有Action方法被调用之前都会执行,所以它当中的内容通常为通用的验证 
 *  步骤:
 *  	1.action要继承ActionSupport
 *  	2.重写validate方法做通用验证
 *  	3.在配置文件的action中配置input视图
 *  	4.jsp页中用s:fielderror来显示错误信息
 */
@Override
public void validate() {
	if(null==user.getUsername()||user.getUsername().isEmpty()){
		//添加错误信息,如果不添加就没有任何意义了
		this.addFieldError("user.username", "用户名不能为空");
	}
	if(null==user.getPassword()||user.getPassword().isEmpty()){
		this.addFieldError("user.password", "密码不能为空");
	}
	if(user.getPassword().length()<6){
		this.addFieldError("user.password", "密码长度过低");
	}
}


2.validateXxx()方法:

/** 
 *  针对特定的Action方法进行校验 Xxx 为特定的方法名
 *  步骤:
 *  1.action要继承ActionSupport
 *  2.重写validate方法做通用验证,也可以写validateXxx方法做特定方法的验证
 *  3.在配置文件的action中配置input视图
 *  4.jsp页中用s:fielderror来显示错误信息
 */
public String regist() throws Exception {
	biz.saveObject(user);			
	return SUCCESS;
}
//针对上面的 regist() 方法的单独验证
public void validateRegist(){
	if(null==user.getUsername()||user.getUsername().isEmpty()){
		this.addFieldError("user.username", "用户名不能为空");
	}
	if(null==user.getPassword()||user.getPassword().isEmpty()){
		this.addFieldError("user.password", "密码不能为空");
	}
	if(user.getPassword().length()<6){
		this.addFieldError("user.password", "密码长度过低");
	}	
}



3.验证框架:

<!--
 步骤:
	1.action要继承ActionSupport
	2.在配置文件的action中配置input视图
	3.jsp页中用s:fielderror来显示错误信息
	4.编写xml配置文件 ,在配置文件中配置验证规则
验证文件规则:
	1.验证文件和要验证的Action在同一个包中
	2.命名:
		对整Action类生效的写法:ClassName-validation.xml 
						eg:	 UserAction-validation.xml
					对某个Action方法生效的写法: ClassName-ActionName-validation.xml
						eg: UserAction-login-validation.xml  (此处的login是在Struts.xml中Action 中的 name)

-->
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC 
  		"-//OpenSymphony Group//XWork Validator 1.0.2//EN" 
  		"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
 <validators>
 <field name="user.username">
 	<field-validator type="requiredstring">
 		<param name="trim">true</param>
 		<message key="required"/>
 	</field-validator>
 	<field-validator type="stringlength">
 		<param name="maxLength">20</param>
 		<param name="minLength">6</param>
 		<message>长度应该在${minLength}和${maxLength}之间</message>
 	</field-validator>
 </field>

 <field name="user.pass">
 	<field-validator type="requiredstring">
 		<param name="trim">true</param>
 		<message>密码不能为空</message>
 	</field-validator>
 </field>
 
 <field name="repass">
 	<field-validator type="fieldexpression">
 		<param name="expression">user.pass==repass</param>
 		<message>确认密码要和密码一致</message>
 	</field-validator>
 </field>
 </validators>

   
   
struts2的内置校验器:
该xml 文档位于xwork-core2.3.16.1.jar 中的/com/opensymphony/xwork2/validator/validators/default.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC
        "-//Apache Struts//XWork Validator Definition 1.0//EN"
        "http://struts.apache.org/dtds/xwork-validator-definition-1.0.dtd">

<!-- START SNIPPET: validators-default -->
<validators>
    <validator name="required" class="com.opensymphony.xwork2.validator.validators.RequiredFieldValidator"/>
    <validator name="requiredstring" class="com.opensymphony.xwork2.validator.validators.RequiredStringValidator"/>
    <validator name="int" class="com.opensymphony.xwork2.validator.validators.IntRangeFieldValidator"/>
    <validator name="long" class="com.opensymphony.xwork2.validator.validators.LongRangeFieldValidator"/>
    <validator name="short" class="com.opensymphony.xwork2.validator.validators.ShortRangeFieldValidator"/>
    <validator name="double" class="com.opensymphony.xwork2.validator.validators.DoubleRangeFieldValidator"/>
    <validator name="date" class="com.opensymphony.xwork2.validator.validators.DateRangeFieldValidator"/>
    <validator name="expression" class="com.opensymphony.xwork2.validator.validators.ExpressionValidator"/>
    <validator name="fieldexpression" class="com.opensymphony.xwork2.validator.validators.FieldExpressionValidator"/>
    <validator name="email" class="com.opensymphony.xwork2.validator.validators.EmailValidator"/>
    <validator name="url" class="com.opensymphony.xwork2.validator.validators.URLValidator"/>
    <validator name="visitor" class="com.opensymphony.xwork2.validator.validators.VisitorFieldValidator"/>
    <validator name="conversion" class="com.opensymphony.xwork2.validator.validators.ConversionErrorFieldValidator"/>
    <validator name="stringlength" class="com.opensymphony.xwork2.validator.validators.StringLengthFieldValidator"/>
    <validator name="regex" class="com.opensymphony.xwork2.validator.validators.RegexFieldValidator"/>
    <validator name="conditionalvisitor" class="com.opensymphony.xwork2.validator.validators.ConditionalVisitorFieldValidator"/>
</validators>
<!--  END SNIPPET: validators-default -->





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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值