struts1(14)---validator框架

本文介绍Struts Validator插件的配置方法及使用技巧,包括如何集成Validator框架、配置校验规则等内容。通过示例展示了如何对表单字段进行有效性检查。

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

lValidator(验证器)框架是一个 Struts 插件,它支持采用声明式的方式对表单进行校验,而不需要用户编写一行Java代码。集成validate框架  ,Struts帮你校验了表单,而且客户端也校验,比如javascript校验他也帮你校验了使用 Validator框架的好处:
Ø更好的可维护性
Ø校验实现标准化
Ø正确的实现
Ø更少的代码重复
Ø自动客户端验证

l在工程中集成validate框架,你需要查看org.apache.struts.validator包下的validator-rules.xml文件,它是validate框架的校验规则文件,这个文件说明了如何在struts工程中集成validate框架:

1、在struts-config.xml文件中配置validate插件。

2、创建资源文件,并复制validate框架工作需要的信息。

3struts-cookbook-1.3.8例程自带的、validate框架的配置文件validation.xml,复制到当前web工程的WEB-INF目录下。

lvalidate框架环境搭建好后,就可以采用配置的方式对formbean的属性进行校验,但需要注意:

1formbean要想使用validate框架校验,不能直接继承 ActionForm, 而要继承其子类 ValidatorForm

2如果是DynaActionForm,就必须要继承DynaValidatorForm

validator rule
validator.xml示例代码
<form name="TestFormBean">

			<field property="username" depends="required,minlength,maxlength,mask">
				<arg key="用户名" resource="false" position="0" />
				
				<arg name="minlength" key="${var:minlength}" position="1" resource="false"/>
				<arg name="maxlength" key="${var:maxlength}" position="1" resource="false"/>
				<var>
					<var-name>minlength</var-name>
					<var-value>3</var-value>
				</var>
				<var>
					<var-name>maxlength</var-name>
					<var-value>6</var-value>
				</var>
				
				<var>
					<var-name>mask</var-name>
					<var-value>[A-Z]{3,6}</var-value>
				</var>
				
			</field>
			
			
			<field property="email" depends="email">
				<arg key="邮箱" resource="false" position="0"/>
			</field>
			
			<field property="birthday" depends="date">
				<arg key="prompt.birthday"  position="0"/>
			</field>
			
			<field property="password" depends="required,minlength,twofields">
				<arg key="密码" position="0" resource="false"/>
				<arg name="minlength" key="${var:minlength}" resource="false"  position="1"/>
				<arg name="twofields" key="确认密码"  position="1" resource="false"/>
				<var>
					<var-name>minlength</var-name>
					<var-value>5</var-value>
				</var>
				<var>
					<var-name>secondProperty</var-name>
					<var-value>password2</var-value>
				</var>
			</field>
			

		</form>
validator.xml详解
l<form>元素:为表单配置验证规则,它的 name 属性指定了表单的名字.<form>元素可以包含一个或多个<field>子元素
l<field>元素:配置表单中字段的验证规则
Øproperty:指定ActionForm Bean 中需要进行验证的字段的名字
Ødepends:指定字段的验证规则,多个验证规则之间以逗号隔开
l<msg>元素:指定验证规则对应的消息文本。该消息文本将替代在 validator-rules.xml 文件中为验证规则配置的默认的消息文本
Øname:指定验证规则的名字
Økey:当 resource true 时,该属性指定消息 key,该消息key 应该在 Resource Bundle 中存在,当resourcefalse 时,该属性直接指定消息文本
Øresource:当该属性为true时,表明使用来自于Resource Bundle 的消息;如果为 false,表明直接在 key 属性中设置消息文本,默认为 true
larg元素:替换符合消息中的参数
Ønamekeyresource元素同上
Øposition 元素:指定替换符合消息中的参数的位置
lvar元素:向验证规则传递参数
Ø<arg>元素也可以访问<var>元素,语法为${var:var-name}



struts-config.xml配置示例:
<form-beans>
		<form-bean name="TestFormBean" type="cn.itcast.web.formbean.UserFormBean3">
			<form-property name="username" type="java.lang.String"></form-property>
			<form-property name="password" type="java.lang.String"></form-property>
			<form-property name="password2" type="java.lang.String"></form-property>
			<form-property name="emails" type="java.lang.String"></form-property>
			<form-property name="birthday" type="java.lang.String"></form-property>
		</form-bean>
		
		
	
	</form-beans>
	<action-mappings>
		<action 
			path="/test5" 
			type="cn.itcast.action.ValidatorAction"
			name="TestFormBean"
			scope="request"
			input="/test5.jsp"
			>
			<forward name="message" path="/message.jsp"></forward>
		</action>
		
	</action-mappings>
	
	<controller processorClass="org.apache.struts.action.RequestProcessor"></controller>
	<message-resources parameter="MessageResource"></message-resources>
	
	<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
        <set-property property="pathnames" 
                      value="/org/apache/struts/validator/validator-rules.xml,
                             /WEB-INF/validation.xml"/>
      </plug-in>




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值