husted 2004/01/08 08:23:45 Added: web/examples/WEB-INF/validator validation.xml struts-config.xml Log: Struts and Validator configuration for validator module. Revision Changes Path 1.1 jakarta-struts/web/examples/WEB-INF/validator/validation.xml Index: validation.xml =================================================================== <?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE form-validation SYSTEM "http://jakarta.apache.org/commons/dtds/validator_1_0.dtd"> <form-validation> <global> <constant> <constant-name>phone</constant-name> <constant-value>^\(?(\d{3})\)?[-| ]?(\d{3})[-| ]?(\d{4})$</constant-value> </constant> <constant> <constant-name>zip</constant-name> <constant-value>^\d{5}\d*$</constant-value> </constant> </global> <formset> <constant> <constant-name>zip</constant-name> <constant-value>^\d{5}(-\d{4})?$</constant-value> </constant> <form name="registrationForm"> <field property="firstName" depends="required,mask,minlength"> <arg0 key="registrationForm.firstname.displayname" /> <arg1 name="minlength" key="${var:minlength}" resource="false" /> <var> <var-name>mask</var-name> <var-value>^\w+$</var-value> </var> <var> <var-name>minlength</var-name> <var-value>5</var-value> </var> </field> <field property="lastName" depends="required,mask,maxlength"> <msg name="mask" key="registrationForm.lastname.maskmsg" /> <arg0 key="registrationForm.lastname.displayname" /> <arg1 name="maxlength" key="${var:maxlength}" resource="false" /> <var> <var-name>mask</var-name> <var-value>^[a-zA-Z]*$</var-value> </var> <var> <var-name>maxlength</var-name> <var-value>10</var-value> </var> </field> <field property="addr" depends="required"> <arg0 key="registrationForm.addr.displayname" /> </field> <field property="cityStateZip.city" depends="required,mask"> <arg0 key="registrationForm.city.displayname" /> <var> <var-name>mask</var-name> <var-value>^[a-zA-Z]*$</var-value> </var> </field> <field property="cityStateZip.stateProv" depends="required,mask"> <arg0 key="registrationForm.stateprov.displayname" /> <var> <var-name>mask</var-name> <var-value>^[a-zA-Z]*$</var-value> </var> </field> <field property="cityStateZip.zipPostal[1]" depends="required,mask"> <arg0 key="registrationForm.zippostal.displayname" /> <var> <var-name>mask</var-name> <var-value>${zip}</var-value> </var> </field> <field property="phone" depends="mask"> <arg0 key="registrationForm.phone.displayname" /> <var> <var-name>mask</var-name> <var-value>${phone}</var-value> </var> </field> <field property="email" depends="required,email"> <arg0 key="registrationForm.email.displayname" /> </field> </form> <form name="multiRegistrationForm"> <field property="firstName" depends="required,mask" page="1"> <arg0 key="registrationForm.firstname.displayname" /> <var> <var-name>mask</var-name> <var-value>^\w+$</var-value> </var> </field> <field property="lastName" depends="required,mask" page="1"> <msg name="mask" key="registrationForm.lastname.maskmsg" /> <arg0 key="registrationForm.lastname.displayname" /> <var> <var-name>mask</var-name> <var-value>^[a-zA-Z]*$</var-value> </var> </field> <field property="addr" depends="required" page="1"> <arg0 key="registrationForm.addr.displayname" /> </field> <field property="cityStateZip.city" depends="required,mask" page="1"> <arg0 key="registrationForm.city.displayname" /> <var> <var-name>mask</var-name> <var-value>^[a-zA-Z]*$</var-value> </var> </field> <field property="cityStateZip.stateProv" depends="required,mask" page="2"> <arg0 key="registrationForm.stateprov.displayname" /> <var> <var-name>mask</var-name> <var-value>^[a-zA-Z]*$</var-value> </var> </field> <field property="cityStateZip.zipPostal[1]" depends="required,mask" page="2"> <arg0 key="registrationForm.zippostal.displayname" /> <var> <var-name>mask</var-name> <var-value>${zip}</var-value> </var> </field> <field property="phone" depends="mask" page="2"> <arg0 key="registrationForm.phone.displayname" /> <var> <var-name>mask</var-name> <var-value>${phone}</var-value> </var> </field> <field property="email" depends="required,email" page="2"> <arg0 key="registrationForm.email.displayname" /> </field> </form> <form name="typeForm"> <field property="byte" depends="required,byte"> <arg0 key="typeForm.byte.displayname" /> </field> <field property="short" depends="required,short"> <arg0 key="typeForm.short.displayname" /> </field> <field property="integer" depends="required,integer,intRange"> <arg0 key="typeForm.integer.displayname" /> <arg1 name="intRange" key="${var:min}" resource="false" /> <arg2 name="intRange" key="${var:max}" resource="false" /> <var> <var-name>min</var-name> <var-value>10</var-value> </var> <var> <var-name>max</var-name> <var-value>20</var-value> </var> </field> <field property="long" depends="required,long"> <arg0 key="typeForm.long.displayname" /> </field> <field property="float" depends="required,float"> <arg0 key="typeForm.float.displayname" /> </field> <field property="floatRange" depends="required,float,floatRange"> <arg0 key="typeForm.floatRange.displayname" /> <arg1 name="floatRange" key="${var:min}" resource="false" /> <arg2 name="floatRange" key="${var:max}" resource="false" /> <var> <var-name>min</var-name> <var-value>-2.17</var-value> </var> <var> <var-name>max</var-name> <var-value>3.14</var-value> </var> </field> <field property="double" depends="required,double"> <arg0 key="typeForm.double.displayname" /> </field> <field property="date" depends="required,date"> <arg0 key="typeForm.date.displayname" /> <var> <var-name>datePatternStrict</var-name> <var-value>MM/dd/yyyy</var-value> </var> </field> <field property="creditCard" depends="required,creditCard"> <arg0 key="typeForm.creditCard.displayname" /> </field> <field property="value" indexedListProperty="nameList" depends="required"> <arg0 key="typeForm.nested.name.displayname" /> </field> </form> <form name="jsTypeForm"> <field property="byte" depends="required,byte"> <arg0 key="typeForm.byte.displayname" /> </field> <field property="short" depends="required,short"> <arg0 key="typeForm.short.displayname" /> </field> <field property="integer" depends="required,integer,intRange"> <arg0 key="typeForm.integer.displayname" /> <arg1 name="intRange" key="${var:min}" resource="false" /> <arg2 name="intRange" key="${var:max}" resource="false" /> <var> <var-name>min</var-name> <var-value>10</var-value> </var> <var> <var-name>max</var-name> <var-value>20</var-value> </var> </field> <field property="float" depends="required,float"> <arg0 key="typeForm.float.displayname" /> </field> <field property="floatRange" depends="required,float,floatRange"> <arg0 key="typeForm.floatRange.displayname" /> <arg1 name="floatRange" key="${var:min}" resource="false" /> <arg2 name="floatRange" key="${var:max}" resource="false" /> <var> <var-name>min</var-name> <var-value>-2.17</var-value> </var> <var> <var-name>max</var-name> <var-value>3.14</var-value> </var> </field> <field property="date" depends="required,date"> <arg0 key="typeForm.date.displayname" /> <var> <var-name>datePatternStrict</var-name> <var-value>MM/dd/yyyy</var-value> </var> </field> <field property="creditCard" depends="required,creditCard"> <arg0 key="typeForm.creditCard.displayname" /> </field> <field property="satisfaction" depends="required"> <arg0 key="typeForm.option.satisfaction" /> </field> <field property="osList" depends="required"> <arg0 key="typeForm.option.os.list" /> </field> <field property="overallSatisfaction" depends="required"> <arg0 key="typeForm.radio.overall.satisfaction" /> </field> <field property="wouldRecommend" depends="required"> <arg0 key="typeForm.checkbox.wouldrecommend" /> </field> <field property="usedLanguages" depends="required"> <arg0 key="typeForm.checkbox.used.languages" /> </field> </form> </formset> <formset language="fr"> <form name="registrationForm"> <field property="lastName" depends="required,mask"> <msg name="mask" key="registrationForm.lastname.maskmsg" /> <arg0 key="registrationForm.lastname.displayname" /> <var> <var-name>mask</var-name> <var-value>^\w+$</var-value> </var> </field> <field property="cityStateZip.stateProv"> <arg0 key="registrationForm.stateprov.displayname" /> </field> <field property="phone"> <arg0 key="registrationForm.phone.displayname" /> </field> </form> <form name="multiRegistrationForm"> <field property="firstName" depends="required,mask" page="1"> <arg0 key="registrationForm.firstname.displayname" /> <var> <var-name>mask</var-name> <var-value>^\w+$</var-value> </var> </field> <field property="lastName" depends="required,mask" page="1"> <msg name="mask" key="registrationForm.lastname.maskmsg" /> <arg0 key="registrationForm.lastname.displayname" /> <var> <var-name>mask</var-name> <var-value>^\w+$</var-value> </var> </field> <field property="addr" depends="required" page="1"> <arg0 key="registrationForm.addr.displayname" /> </field> <field property="cityStateZip.city" depends="required,mask" page="1"> <arg0 key="registrationForm.city.displayname" /> <var> <var-name>mask</var-name> <var-value>^[a-zA-Z]*$</var-value> </var> </field> <field property="cityStateZip.stateProv" page="2"> <arg0 key="registrationForm.stateprov.displayname" /> </field> <field property="cityStateZip.zipPostal[1]" depends="required,mask" page="2"> <arg0 key="registrationForm.zippostal.displayname" /> <var> <var-name>mask</var-name> <var-value>${zip}</var-value> </var> </field> <field property="phone" page="2"> <arg0 key="registrationForm.phone.displayname" /> </field> <field property="email" depends="required,email" page="2"> <arg0 key="registrationForm.email.displayname" /> </field> </form> <form name="typeForm"> <field property="integer" depends="required,integer,intRange"> <arg0 key="typeForm.integer.displayname" /> <arg1 name="intRange" key="${var:min}" resource="false" /> <arg2 name="intRange" key="${var:max}" resource="false" /> <var> <var-name>min</var-name> <var-value>50</var-value> </var> <var> <var-name>max</var-name> <var-value>60</var-value> </var> </field> <field property="date" depends="required,date"> <arg0 key="typeForm.date.displayname" /> <var> <var-name>datePatternStrict</var-name> <var-value>dd.MM.yyyy</var-value> </var> </field> </form> <form name="jsTypeForm"> <field property="integer" depends="required,integer,intRange"> <arg0 key="typeForm.integer.displayname" /> <arg1 name="intRange" key="${var:min}" resource="false" /> <arg2 name="intRange" key="${var:max}" resource="false" /> <var> <var-name>min</var-name> <var-value>100</var-value> </var> <var> <var-name>max</var-name> <var-value>200</var-value> </var> </field> <field property="date" depends="required,date"> <arg0 key="typeForm.date.displayname" /> <var> <var-name>datePatternStrict</var-name> <var-value>dd.MM.yyyy</var-value> </var> </field> </form> </formset> <formset language="ja"> <constant> <constant-name>zip</constant-name> <constant-value>^\d{3}-\d{4}$</constant-value> </constant> <constant> <constant-name>phone</constant-name> <constant-value>^[0][1-9]((\d{2,3}-?)|(-\d{2,3})|(\d-\d{1,2})|(\d{2}-\d))\d-\d{4}$</constant-value> </constant> <form name="registrationForm"> <field property="firstName" depends="required,mask,minlength"> <arg0 key="registrationForm.firstname.displayname" /> <arg1 name="minlength" key="${var:minlength}" resource="false" /> <var> <var-name>mask</var-name> <var-value>^\w+$</var-value> </var> <var> <var-name>minlength</var-name> <var-value>5</var-value> </var> </field> <field property="lastName" depends="required,mask,maxlength"> <msg name="mask" key="registrationForm.lastname.maskmsg" /> <arg0 key="registrationForm.lastname.displayname" /> <arg1 name="maxlength" key="${var:maxlength}" resource="false" /> <var> <var-name>mask</var-name> <var-value>^[a-zA-Z]*$</var-value> </var> <var> <var-name>maxlength</var-name> <var-value>10</var-value> </var> </field> <field property="addr" depends="required"> <arg0 key="registrationForm.addr.displayname" /> </field> <field property="cityStateZip.city" depends="required,mask"> <arg0 key="registrationForm.city.displayname" /> <var> <var-name>mask</var-name> <var-value>^[a-zA-Z]*$</var-value> </var> </field> <field property="cityStateZip.stateProv" depends="required,mask"> <arg0 key="registrationForm.stateprov.displayname" /> <var> <var-name>mask</var-name> <var-value>^[a-zA-Z]*$</var-value> </var> </field> <field property="cityStateZip.zipPostal[1]" depends="required,mask"> <arg0 key="registrationForm.zippostal.displayname" /> <var> <var-name>mask</var-name> <var-value>${zip}</var-value> </var> </field> <field property="phone" depends="mask"> <arg0 key="registrationForm.phone.displayname" /> <var> <var-name>mask</var-name> <var-value>${phone}</var-value> </var> </field> <field property="email" depends="required,email"> <arg0 key="registrationForm.email.displayname" /> </field> </form> <form name="multiRegistrationForm"> <field property="firstName" depends="required,mask" page="1"> <arg0 key="registrationForm.firstname.displayname" /> <var> <var-name>mask</var-name> <var-value>^\w+$</var-value> </var> </field> <field property="lastName" depends="required,mask" page="1"> <msg name="mask" key="registrationForm.lastname.maskmsg" /> <arg0 key="registrationForm.lastname.displayname" /> <var> <var-name>mask</var-name> <var-value>^[a-zA-Z]*$</var-value> </var> </field> <field property="addr" depends="required" page="1"> <arg0 key="registrationForm.addr.displayname" /> </field> <field property="cityStateZip.city" depends="required,mask" page="1"> <arg0 key="registrationForm.city.displayname" /> <var> <var-name>mask</var-name> <var-value>^[a-zA-Z]*$</var-value> </var> </field> <field property="cityStateZip.stateProv" depends="required,mask" page="2"> <arg0 key="registrationForm.stateprov.displayname" /> <var> <var-name>mask</var-name> <var-value>^[a-zA-Z]*$</var-value> </var> </field> <field property="cityStateZip.zipPostal[1]" depends="required,mask" page="2"> <arg0 key="registrationForm.zippostal.displayname" /> <var> <var-name>mask</var-name> <var-value>${zip}</var-value> </var> </field> <field property="phone" depends="mask" page="2"> <arg0 key="registrationForm.phone.displayname" /> <var> <var-name>mask</var-name> <var-value>${phone}</var-value> </var> </field> <field property="email" depends="required,email" page="2"> <arg0 key="registrationForm.email.displayname" /> </field> </form> <form name="typeForm"> <field property="byte" depends="required,byte"> <arg0 key="typeForm.byte.displayname" /> </field> <field property="short" depends="required,short"> <arg0 key="typeForm.short.displayname" /> </field> <field property="integer" depends="required,integer,intRange"> <arg0 key="typeForm.integer.displayname" /> <arg1 name="intRange" key="${var:min}" resource="false" /> <arg2 name="intRange" key="${var:max}" resource="false" /> <var> <var-name>min</var-name> <var-value>400</var-value> </var> <var> <var-name>max</var-name> <var-value>700</var-value> </var> </field> <field property="long" depends="required,long"> <arg0 key="typeForm.long.displayname" /> </field> <field property="float" depends="required,float"> <arg0 key="typeForm.float.displayname" /> </field> <field property="floatRange" depends="required,float,floatRange"> <arg0 key="typeForm.floatRange.displayname" /> <arg1 name="floatRange" key="${var:min}" resource="false" /> <arg2 name="floatRange" key="${var:max}" resource="false" /> <var> <var-name>min</var-name> <var-value>-2.17</var-value> </var> <var> <var-name>max</var-name> <var-value>3.14</var-value> </var> </field> <field property="double" depends="required,double"> <arg0 key="typeForm.double.displayname" /> </field> <field property="date" depends="required,date"> <arg0 key="typeForm.date.displayname" /> <var> <var-name>datePatternStrict</var-name> <var-value>yyyy/MM/dd</var-value> </var> </field> <field property="creditCard" depends="required,creditCard"> <arg0 key="typeForm.creditCard.displayname" /> </field> <field property="value" indexedListProperty="nameList" depends="required"> <arg0 key="typeForm.nested.name.displayname" /> </field> </form> <form name="jsTypeForm"> <field property="byte" depends="required,byte"> <arg0 key="typeForm.byte.displayname" /> </field> <field property="short" depends="required,short"> <arg0 key="typeForm.short.displayname" /> </field> <field property="integer" depends="required,integer,intRange"> <arg0 key="typeForm.integer.displayname" /> <arg1 name="intRange" key="${var:min}" resource="false" /> <arg2 name="intRange" key="${var:max}" resource="false" /> <var> <var-name>min</var-name> <var-value>400</var-value> </var> <var> <var-name>max</var-name> <var-value>700</var-value> </var> </field> <field property="float" depends="required,float"> <arg0 key="typeForm.float.displayname" /> </field> <field property="floatRange" depends="required,float,floatRange"> <arg0 key="typeForm.floatRange.displayname" /> <arg1 name="floatRange" key="${var:min}" resource="false" /> <arg2 name="floatRange" key="${var:max}" resource="false" /> <var> <var-name>min</var-name> <var-value>-2.17</var-value> </var> <var> <var-name>max</var-name> <var-value>3.14</var-value> </var> </field> <field property="date" depends="required,date"> <arg0 key="typeForm.date.displayname" /> <var> <var-name>datePatternStrict</var-name> <var-value>yyyy/MM/dd</var-value> </var> </field> <field property="creditCard" depends="required,creditCard"> <arg0 key="typeForm.creditCard.displayname" /> </field> </form> </formset> <formset language="fr" country="CA"> <form name="registrationForm"> <field property="lastName" depends="required,mask"> <msg name="mask" key="registrationForm.lastname.maskmsg" /> <arg0 key="registrationForm.lastname.displayname" /> <var> <var-name>mask</var-name> <var-value>^\w+$</var-value> </var> </field> <field property="cityStateZip.stateProv"> <arg0 key="registrationForm.stateprov.displayname" /> </field> <field property="phone"> <arg0 key="registrationForm.phone.displayname" /> </field> </form> <form name="multiRegistrationForm"> <field property="firstName" depends="required,mask" page="1"> <arg0 key="registrationForm.firstname.displayname" /> <var> <var-name>mask</var-name> <var-value>^\w+$</var-value> </var> </field> <field property="lastName" depends="required,mask" page="1"> <msg name="mask" key="registrationForm.lastname.maskmsg" /> <arg0 key="registrationForm.lastname.displayname" /> <var> <var-name>mask</var-name> <var-value>^\w+$</var-value> </var> </field> <field property="addr" depends="required" page="1"> <arg0 key="registrationForm.addr.displayname" /> </field> <field property="cityStateZip.city" depends="required,mask" page="1"> <arg0 key="registrationForm.city.displayname" /> <var> <var-name>mask</var-name> <var-value>^[a-zA-Z]*$</var-value> </var> </field> <field property="cityStateZip.stateProv" page="2"> <arg0 key="registrationForm.stateprov.displayname" /> </field> <field property="cityStateZip.zipPostal[1]" depends="required,mask" page="2"> <arg0 key="registrationForm.zippostal.displayname" /> <var> <var-name>mask</var-name> <var-value>${zip}</var-value> </var> </field> <field property="phone" page="2"> <arg0 key="registrationForm.phone.displayname" /> </field> <field property="email" depends="required,email" page="2"> <arg0 key="registrationForm.email.displayname" /> </field> </form> <form name="typeForm"> <field property="integer" depends="required,integer,intRange"> <arg0 key="typeForm.integer.displayname" /> <arg1 name="intRange" key="${var:min}" resource="false" /> <arg2 name="intRange" key="${var:max}" resource="false" /> <var> <var-name>min</var-name> <var-value>50</var-value> </var> <var> <var-name>max</var-name> <var-value>60</var-value> </var> </field> <field property="date" depends="required,date"> <arg0 key="typeForm.date.displayname" /> <var> <var-name>datePatternStrict</var-name> <var-value>dd.MM.yyyy</var-value> </var> </field> </form> <form name="jsTypeForm"> <field property="integer" depends="required,integer,intRange"> <arg0 key="typeForm.integer.displayname" /> <arg1 name="intRange" key="${var:min}" resource="false" /> <arg2 name="intRange" key="${var:max}" resource="false" /> <var> <var-name>min</var-name> <var-value>100</var-value> </var> <var> <var-name>max</var-name> <var-value>200</var-value> </var> </field> <field property="date" depends="required,date"> <arg0 key="typeForm.date.displayname" /> <var> <var-name>datePatternStrict</var-name> <var-value>MM-dd-yyyy</var-value> </var> </field> </form> </formset> </form-validation> 1.1 jakarta-struts/web/examples/WEB-INF/validator/struts-config.xml Index: struts-config.xml =================================================================== <?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE struts-config SYSTEM "http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd"> <struts-config> <!--============================================== Form Bean Definitions --> <form-beans> <!-- Registration form bean --> <form-bean name="registrationForm" type="org.apache.struts.webapp.validator.RegistrationForm" /> <!-- Multi-Part Registration form bean --> <form-bean name="multiRegistrationForm" type="org.apache.struts.webapp.validator.RegistrationForm" /> <!-- Type form bean --> <form-bean name="typeForm" type="org.apache.struts.webapp.validator.TypeForm" /> <!-- JavaScript Type form bean --> <form-bean name="jsTypeForm" type="org.apache.struts.webapp.validator.TypeForm" /> <!-- Locale form bean --> <form-bean name="localeForm" type="org.apache.struts.action.DynaActionForm"> <form-property name="language" type="java.lang.String" /> <form-property name="country" type="java.lang.String" /> </form-bean> </form-beans> <!-- ======================================== Global Forward Definitions --> <global-forwards> <forward name="home" path="/index.jsp" /> </global-forwards> <!-- ========================================= Action Mapping Definitions --> <action-mappings> <action path="/welcome" forward="/index.jsp" /> <!-- Registration Action --> <action path="/registration" forward="/registration.jsp" /> <action path="/registration-submit" type="org.apache.struts.webapp.validator.RegistrationAction" name="registrationForm" scope="request" validate="true" input="/registration.do"> <forward name="success" path="/index.jsp" /> </action> <action path="/jsRegistration" forward="/jsRegistration.jsp" /> <!-- Multi-Part Registration Action --> <action path="/multiRegistration" forward="/multiRegistration1.jsp" /> <action path="/multiRegistration-submit" type="org.apache.struts.webapp.validator.MultiRegistrationAction" name="multiRegistrationForm" scope="request" validate="false"> <forward name="success" path="/welcome.do" /> <forward name="input1" path="/multiRegistration1.jsp" /> <forward name="input2" path="/multiRegistration2.jsp" /> </action> <!-- Type Action --> <action path="/type" forward="/type.jsp" /> <action path="/type-submit" type="org.apache.struts.webapp.validator.TypeAction" name="typeForm" scope="request" validate="true" input="/type.do"> <forward name="success" path="/welcome.do" /> </action> <!-- JavaScript Type Action --> <action path="/editJsType" type="org.apache.struts.webapp.validator.EditTypeAction" scope="request" validate="false"> <forward name="success" path="/jsType.do" /> </action> <action path="/jsType" forward="/jsType.jsp" /> <action path="/jsType-submit" type="org.apache.struts.webapp.validator.TypeAction" name="jsTypeForm" scope="request" validate="true" input="/editJsType-submit.do?typeForm.reset=false"> <forward name="success" path="/welcome.do" /> </action> <!-- Locale Action --> <action path="/locale" type="org.apache.struts.webapp.validator.LocaleAction" name="localeForm" scope="request"> <forward name="success" path="/welcome.do" /> </action> </action-mappings> <!-- ===================================== Message Resources Definitions --> <message-resources parameter="org.apache.struts.webapp.validator.MessageResources" /> <!-- ============================================ Plug Ins Configuration --> <!-- Add multiple validator resource files by setting the pathnames property with a comma delimitted list of resource files to load. --> <plug-in className="org.apache.struts.validator.ValidatorPlugIn"> <set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validator/validation.xml" /> <set-property property="stopOnFirstError" value="true" /> </plug-in> </struts-config>
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]