用Struts 1实现表单数据的验证

在stuts -config. xm1中配置:

<plug-in className=" org. apache . struts. validator . ValidatorPlugIn">
<set-property value= "/WEB-INF/validator-rules .xml, /WEB-INF/validation.xm1*/>
</plug-in>

基本过程:
tomcat启动,读取web.xml文件,创建struts对象,执行init()方法初始化 , 将stuts-config. xml读到内存
有< plug-in>就自动创建出插件对象,调用setPathnames(), 把value的值(两个验证规则的 .xml文件)设到Pathnames属性中。
执行插件对象的init() , 通过流对象将两个验证规则文件读到内存。

例:用户名密码什么都不输入就提交
http://127 .0.0.1: 880/a/login1 : do Pusername-=""&password=""

通过/login1找到配置信息

<action path= "/login1"
type=" com. bjsxt. struts. LoginAction"
name="loginForm"
scope= "request"
validate="true"//使用的是动态ActionForm -- 说明收集完了要调用相应的方法对收集来的数据做验证
input="/login1. jsp"
>
<forward name=" success 'path=" /login success.jsp"/>
</action>
<form-bean name= "loginForm" type=" org- apache . struts . validator .DynaValidatorForm">
<form-property name= "username" type="java. lang String"/>
<form-property name= ”password" type= "java . lang . String"/>
</form-bean>
<message - resources parameter= "MessageResources" /> //配置国际化资源文件

通过name=“loginForm找到formbean type=” org. apache . struts . validator . DynaValidatorForm",创建DynaActionForm对象

key=“username” value = FormPropertyConfig 对象
[ String name = “username” String / type = “java.lang.String” ]

key=“password” value = FormPropertyConfig 对象
[ String name =password" String / type = “java.lang.String” ]

自动收集表单数据到dynaValues 集合中:
key =“username”, value =[空串]
key =“password”, value =[空串]

收集完表单数据后立马调用validation() 方法按照验证规则进行处理:
通过username找到国际化资源文件,生成错误提示信息,则不能继续执行
提示信息在login.jsp中显示

<form-validation>
	<formset>
		<form name= "loginForm" >
		<field property="username" depends=" required">
			<arg key="prompt . username"/> //国际化资源文件
		</field>
<field property="password" depends="required,mask">
	<arg key="prompt . password"/>
		<var>
		<var- name>mask</ var-name>
		<var-value>^[0-9a-zA-Z]*$</var-value>
		</var>
	</field>
	</form>
	</formset>
</form-validation>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值