7 Struts2输入校验(二)----验证框架

本文深入探讨了Struts2框架中验证逻辑的实现方式,包括XML文件名约定、验证通过与不通过时的方法调用、以及具体的验证规则配置。通过实例解析了如何使用XWorkValidator进行字段级和非字段级验证,并详细说明了Struts2内建的校验器及其用途。此外,文章还提供了验证器的使用场景和实例,旨在帮助开发者更好地理解并应用Struts2框架中的验证机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一 文件名约定:

1) 验证XML的文件名: Action类名-validation.xml , 并与相关的Action类放在一起.

2) 当一个Action中有多个业务方法时 : Action 名-映射名-validation.xml

什么是映射名:<action name="login".../> ,name属性的值:login就是映射名, 千万注意,很多人写错

例子:

URL是:http://localhost/struts/user_addUser. action

struts.xml是:

		<action name="user_*" class="ssh.org.web.UserAction" method="{1}">
			<result name="success">/user/success.jsp</result>
			<result name="input">/user/user.jsp</result>			
		</action>

匹配后<action name="user_*".../> 实为<action name="user_addUser" .../>

所以验证框架XML文件名是: UserAction-user_addUser -validation.xml

二 验证不通过时, 会执行addFieldError ()方法, 在JSP页面, 要用 <s:fielderror />显示信息.

关于addFieldError,请看第6讲:6 addActionError与addFieldError

三 例子

Registration-validation.xml : 用于校验Registration.java类

<?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>

<!-- 
      非字段校验器
     <validator type="requiredstring">
		<param name="fieldName">username</param>
		<message>username should not be blank!</message>
	</validator>
	
	<validator type="stringlength">
		<param name="fieldName">username</param>
		<param name="minLength">6</param>
		<param name="maxLength">10</param>
		<message>username should be between ${minLength} and ${maxLength}</message>
	</validator>
 -->	

	字段校验器-->
     <field name="username">
		<field-validator type="requiredstring">
			<param name="trim">true</param>
			<message>username should not be blank!</message>
		</field-validator>
		
		<field-validator type="stringlength">
			<param name="minLength">6</param>
			<param name="maxLength">10</param>
			<message>username should be between ${minLength} and ${maxLength}</message>
		</field-validator>
	</field>

	<field name="password">
		<field-validator type="requiredstring">
			<message>password should not be blank!</message>
		</field-validator>
		
		<field-validator type="stringlength">
			<param name="minLength">6</param>
			<param name="maxLength">10</param>
			<message>password should be between ${minLength} and ${maxLength}</message>
		</field-validator>
	</field>
	
	<field name="repassword">
		<field-validator type="requiredstring">
			<message>repassword should not be blank!</message>
		</field-validator>
		
		<field-validator type="stringlength">
			<param name="minLength">6</param>
			<param name="maxLength">10</param>
			<message>repassword should be between ${minLength} and ${maxLength}</message>
		</field-validator>
	</field>
	
	<field name="age">
		<field-validator type="required">
			<message>age should not be blank!</message>
		</field-validator>
	
		<field-validator type="int">
			<param name="min">1</param>
			<param name="max">150</param>
			<message>age should be between ${min} and ${max}</message>
		</field-validator>
	</field>
	
	<field name="birthday">
		<field-validator type="required">
			<message>birthday should not be blank!</message>
		</field-validator>
		
		<field-validator type="date">
			<param name="min">2001-01-01</param>
			<param name="max">2003-12-31</param>
			<message>birthday should be between ${min} and ${max}</message>
		</field-validator>
	</field>
	
	<field name="graduation">
		<field-validator type="required">
			<message>graduation should not be blank!</message>
		</field-validator>
		
		<field-validator type="date">
			<param name="min">2005-01-01</param>
			<param name="max">2007-12-31</param>
			<message>graduation should be between ${min} and ${max}</message>
		</field-validator>
	</field>
	

	
</validators>



四 Struts2内建的 校验器有:

<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>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值