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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章