Cookbook-struts1.3.8案例分析-Validator
Cookbook-struts1.3.8案例分析-Validator
l Validator
入口Action配置
<action path="/prepareValidator" type="examples.SuccessAction"> <forward name="success" path="/jsp/validator/Validator.jsp" /> </action> <action path="/processValidator" type="examples.validator.ProcessValidatorAction" name="validatorForm" scope="request" input="/jsp/validator/Validator.jsp" cancellable="true" validate="true"> <set-property property="actionId" value="validatorAction" /> <forward name="success" path="/jsp/validator/ValidatorResults.jsp" /> </action> |
SuccessActiony,與Simple Form using ActionForm的一致
Form Jsp頁(yè)面里用到的標(biāo)簽,普通的html標(biāo)簽
<html:text property="byteValue" /> <html:text property="shortValue" /> <html:text property="integerValue" /> <html:text property="longValue" /> <html:text property="floatValue" /> <html:text property="doubleValue" /> <html:text property="creditCard" /> <html:text property="date" /> <html:text property="email" /> <html:text property="mask" /> <html:text property="min" /> <html:text property="max" /> <html:text property="range" /> <html:text property="required" /> <html:password property="password" redisplay="false"/> <html:password property="password2" redisplay="false"/> |
ActionForm類的定義,用xml定義
<form-bean name="validatorForm" type="org.apache.struts.validator.DynaValidatorForm"> <form-property name="byteValue" type="java.lang.String" /> <form-property name="creditCard" type="java.lang.String" /> <form-property name="date" type="java.lang.String" /> <form-property name="doubleValue" type="java.lang.String" /> <form-property name="email" type="java.lang.String" /> <form-property name="floatValue" type="java.lang.String" /> <form-property name="integerValue" type="java.lang.String" /> <form-property name="longValue" type="java.lang.String" /> <form-property name="mask" type="java.lang.String" /> <form-property name="min" type="java.lang.String" /> <form-property name="max" type="java.lang.String" /> <form-property name="range" type="java.lang.String" /> <form-property name="required" type="java.lang.String" /> <form-property name="shortValue" type="java.lang.String" /> <form-property name="password" type="java.lang.String" /> <form-property name="password2" type="java.lang.String" /> </form-bean> |
驗(yàn)證的配置文件內(nèi)容
<form name="validatorForm"> 驗(yàn)證長(zhǎng)度 <field property="byteValue" depends="byte"> <arg key="prompt.byte" /> </field> <field property="shortValue" depends="short"> <arg key="prompt.short" /> </field> <field property="integerValue" depends="integer"> <arg key="prompt.integer" /> </field> <field property="longValue" depends="long"> <arg key="prompt.long" /> </field> <field property="floatValue" depends="float"> <arg key="prompt.float" /> </field> <field property="doubleValue" depends="double"> <arg key="prompt.double" /> </field> <field property="creditCard" depends="creditCard"> <arg key="prompt.creditCard" /> </field> <field property="date" depends="date"> <arg key="prompt.date" /> <var> <var-name>datePattern</var-name> <var-value>MM/dd/yyyy</var-value> </var> </field> <field property="email" depends="email"> <arg key="prompt.email" /> </field> <field property="mask" depends="mask"> <arg key="prompt.mask" /> <var> <var-name>mask</var-name> <var-value>^"d{5}"d*$</var-value> </var> </field> <field property="min" depends="minlength"> <arg key="prompt.min" position="0"/> <arg name="minlength" key="${var:minlength}" resource="false" position="1" /> <var> <var-name>minlength</var-name> <var-value>5</var-value> </var> </field> <field property="max" depends="maxlength"> <arg key="prompt.max" position="0"/> <arg name="maxlength" key="${var:maxlength}" resource="false" position="1" /> <var> <var-name>maxlength</var-name> <var-value>10</var-value> </var> </field> <field property="range" depends="integer,intRange"> <arg key="prompt.range" /> <arg name="intRange" key="${var:min}" resource="false" position="1" /> <arg name="intRange" key="${var:max}" resource="false" position="2" /> <var> <var-name>min</var-name> <var-value>100</var-value> </var> <var> <var-name>max</var-name> <var-value>1000</var-value> </var> </field> 驗(yàn)證必填值和兩個(gè)值一致 <field property="required" depends="required"> <arg key="prompt.required" /> </field> <field property="password" depends="required,minlength,twofields"> <arg key="prompt.password" position="0"/> <arg name="minlength" key="${var:minlength}" resource="false" position="1"/> <arg name="twofields" key="prompt.password2" position="1"/> <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 <global> <!-- Custom Validator --> <validator name="twofields" classname="examples.validator.CustomValidator" method="validateTwoFields" methodParams="java.lang.Object, org.apache.commons.validator.ValidatorAction, org.apache.commons.validator.Field, org.apache.struts.action.ActionMessages, javax.servlet.http.HttpServletRequest" msg="errors.twofields" /> </global> |
posted on 2008-07-08 02:23 MingIsMe 閱讀(201) 評(píng)論(0) 編輯 收藏 所屬分類: 16 案例分析