Jeff, Have you tried setting the input="" attribute to a completely different page to make sure validation IS failing and that you're just not properly showing error messages?
Do your logs show the Validation plugIn being configured upon web-application startup? Regards, David -----Original Message----- From: Jeff Smith [mailto:[EMAIL PROTECTED] Sent: Monday, November 22, 2004 9:37 AM To: Struts Users Mailing List Subject: Re: Multi-Page Wizard Validation Problem I added that, it fixes the page always resetting problem, but still no validation between page changes. On Nov 22, 2004, at 7:26 AM, Bill Siggelkow wrote: > I believe you need a form-property named 'page' with a type of > 'java.lang.Integer'. > > -Bill Siggelkow > > > > Jeff Smith wrote: >> Let me paste the files in instead >> -- struts config starts here -- >> <?xml version="1.0" encoding="iso-8859-1"?> >> <!DOCTYPE struts-config PUBLIC >> "-//Apache Software Foundation//DTD Struts Configuration >> 1.2//EN" >> "http://struts.apache.org/dtds/struts-config_1_2.dtd"> >> <struts-config> >> <!-- >> Form Bean Definitions >> --> >> <form-beans> >> <form-bean name="registrationForm" >> type="org.apache.struts.validator.DynaValidatorActionForm"> >> <!-- Page One --> >> <form-property name="firstName" type="java.lang.String"/> >> <form-property name="middleName" type="java.lang.String"/> >> <form-property name="lastName" type="java.lang.String"/> >> <form-property name="username" type="java.lang.String"/> >> <form-property name="password" type="java.lang.String"/> >> <form-property name="password2" type="java.lang.String"/> >> <!-- Page Two --> >> <form-property name="birthDate" type="java.lang.String"/> >> <!-- Page Three --> >> <form-property name="street1" type="java.lang.String"/> >> <form-property name="street2" type="java.lang.String"/> >> <form-property name="city" type="java.lang.String"/> >> <form-property name="state" type="java.lang.String"/> >> <form-property name="country" type="java.lang.String"/> >> <form-property name="postalCode" type="java.lang.String"/> >> </form-bean> >> </form-beans> >> <!-- >> Action Mappings >> --> >> <action-mappings> >> <action path="/reg/step1" >> parameter="command" >> type="com.rochets.application.action.RegistrationAction" >> name="registrationForm" >> scope="session" >> validate="true" >> input="reg.step1"> >> <forward name="next" path="reg.step2"/> >> <forward name="cancel" >> path="/WEB-INF/jsp/mywizardcancel.jsp"/> >> </action> >> <action path="/reg/step2" >> parameter="command" >> type="com.rochets.application.action.RegistrationAction" >> name="registrationForm" >> scope="session" >> validate="true" >> input="reg.step2"> >> <forward name="previous" path="reg.step1"/> >> <forward name="next" path="reg.step3"/> >> <forward name="finish" >> path="/WEB-INF/jsp/mywizarddone.jsp"/> >> <forward name="cancel" >> path="/WEB-INF/jsp/mywizardcancel.jsp"/> >> </action> >> <action path="/reg/step3" >> parameter="command" >> type="com.rochets.application.action.RegistrationAction" >> name="registrationForm" >> scope="session" >> validate="true" >> input="reg.step3"> >> <forward name="previous" path="reg.step3"/> >> <forward name="finish" >> path="/WEB-INF/jsp/mywizarddone.jsp"/> >> <forward name="cancel" >> path="/WEB-INF/jsp/mywizardcancel.jsp"/> >> </action> >> <action path="/reg/registration" >> parameter="command" >> name="registrationForm" >> scope="session" >> type="com.rochets.application.action.RegistrationAction" >> validate="true" >> input="/reg/registration.do"> >> <forward name="next" path="reg.step1"/> >> </action> >> </action-mappings> >> <message-resources parameter="resources.reg.Registration" >> null="false"/> >> <plug-in className="org.apache.struts.validator.ValidatorPlugIn"> >> <set-property >> property="pathnames" >> value="/WEB-INF/struts/reg/validation.xml"/> >> </plug-in> >> </struts-config> >> -- validation.xml starts here -- >> <?xml version="1.0" encoding="iso-8859-1"?> >> <!DOCTYPE form-validation PUBLIC >> "-//Apache Software Foundation//DTD Commons Validator Rules >> Configuration 1.1.3//EN" >> >> "http://jakarta.apache.org/commons/dtds/validator_1_1_3.dtd"> >> <form-validation> >> <formset> >> <form name="registrationForm"> >> <!-- Page One --> >> <field property="firstName" >> depends="required,mask,minlength,maxlength" page="1"> >> <arg key="firstname" position="0"/> >> <arg name="minlength" key="${var:minlength}" >> resource="false" position="1"/> >> <var> >> <var-name>mask</var-name> >> <var-value>^\w+$</var-value> >> </var> >> <var> >> <var-name>minlength</var-name> >> <var-value>2</var-value> >> </var> >> <var> >> <var-name>maxlength</var-name> >> <var-value>255</var-value> >> </var> >> </field> >> <field property="middleName" depends="mask,maxlength" >> page="1"> >> <arg key="firstname" position="0"/> >> <var> >> <var-name>mask</var-name> >> <var-value>^\w+$</var-value> >> </var> >> <var> >> <var-name>maxlength</var-name> >> <var-value>255</var-value> >> </var> >> </field> >> <field property="lastName" >> depends="required,mask,minlength,maxlength" page="1"> >> <arg key="lastname" position="0"/> >> <arg name="minlength" key="${var:minlength}" >> resource="false" position="1"/> >> <var> >> <var-name>mask</var-name> >> <var-value>^\w+$</var-value> >> </var> >> <var> >> <var-name>minlength</var-name> >> <var-value>2</var-value> >> </var> >> <var> >> <var-name>maxlength</var-name> >> <var-value>255</var-value> >> </var> >> </field> >> <field property="username" >> depends="required,maxlength,email" page="1"> >> <arg key="username" position="0"/> >> <var> >> <var-name>maxlength</var-name> >> <var-value>255</var-value> >> </var> >> </field> >> <field property="password" >> depends="required,minlength,maxlength,twofields" page="1"> >> <arg key="password" position="0"/> >> <arg name="minlength" key="${var:minlength}" >> resource="false" position="1"/> >> <var> >> <var-name>minlength</var-name> >> <var-value>6</var-value> >> </var> >> <var> >> <var-name>maxlength</var-name> >> <var-value>255</var-value> >> </var> >> <var> >> <var-name>secondProperty</var-name> >> <var-value>password2</var-value> >> </var> >> </field> >> <field property="password2" >> depends="required,minlength,maxlength" page="1"> >> <arg key="password2" position="0"/> >> <arg name="minlength" key="${var:minlength}" >> resource="false" position="1"/> >> <var> >> <var-name>minlength</var-name> >> <var-value>6</var-value> >> </var> >> <var> >> <var-name>maxlength</var-name> >> <var-value>255</var-value> >> </var> >> </field> >> <!-- Page Two --> >> <field property="birthDate" depends="required,date" >> page="2"> >> <arg key="birthdate" position="0"/> >> <var> >> <var-name>datePatternStrict</var-name> >> <var-value>MM/dd/yyyy</var-value> >> </var> >> </field> >> <field property="weight" >> depends="required,minlength,maxlength,integer" page="2"> >> <arg key="weight" position="0"/> >> <var> >> <var-name>minlength</var-name> >> <var-value>2</var-value> >> </var> >> <var> >> <var-name>maxlength</var-name> >> <var-value>3</var-value> >> </var> >> </field> >> <field property="goalWeight" >> depends="required,minlength,maxlength,integer" page="2"> >> <arg key="goalweight" position="0"/> >> <var> >> <var-name>minlength</var-name> >> <var-value>2</var-value> >> </var> >> <var> >> <var-name>maxlength</var-name> >> <var-value>3</var-value> >> </var> >> </field> >> <field property="currentDaysPerWeek" >> depends="required,maxlength,integer,intRange" page="2"> >> <arg key="currentdaysperweek" position="0"/> >> <var> >> <var-name>min</var-name> >> <var-value>0</var-value> >> </var> >> <var> >> <var-name>max</var-name> >> <var-value>7</var-value> >> </var> >> </field> >> <field property="availableMinutesPerDay" >> depends="required,maxlength,integer,intRange" page="2"> >> <arg key="availableminutesperday" position="0"/> >> <var> >> <var-name>maxlength</var-name> >> <var-value>3</var-value> >> </var> >> <var> >> <var-name>min</var-name> >> <var-value>30</var-value> >> </var> >> <var> >> <var-name>max</var-name> >> <var-value>60</var-value> >> </var> >> </field> >> <field property="availableDays" depends="required" >> page="2"> >> <arg key="availabledays" position="0"/> >> </field> >> <!-- Page Three --> >> <field property="street1" >> depends="required,minlength,maxlength" page="3"> >> <arg key="street1" position="0"/> >> <arg name="minlength" key="${var:minlength}" >> resource="false" position="1"/> >> <var> >> <var-name>minlength</var-name> >> <var-value>6</var-value> >> </var> >> <var> >> <var-name>maxlength</var-name> >> <var-value>255</var-value> >> </var> >> </field> >> <field property="street1" depends="minlength,maxlength" >> page="3"> >> <arg key="street1" position="0"/> >> <arg name="minlength" key="${var:minlength}" >> resource="false" position="1"/> >> <var> >> <var-name>minlength</var-name> >> <var-value>6</var-value> >> </var> >> <var> >> <var-name>maxlength</var-name> >> <var-value>255</var-value> >> </var> >> </field> >> <field property="city" >> depends="required,minlength,maxlength" page="3"> >> <arg key="street1" position="0"/> >> <arg name="minlength" key="${var:minlength}" >> resource="false" position="1"/> >> <var> >> <var-name>minlength</var-name> >> <var-value>2</var-value> >> </var> >> <var> >> <var-name>maxlength</var-name> >> <var-value>255</var-value> >> </var> >> </field> >> <field property="state" >> depends="required,minlength,maxlength" page="3"> >> <arg key="state" position="0"/> >> <arg name="minlength" key="${var:minlength}" >> resource="false" position="1"/> >> <var> >> <var-name>minlength</var-name> >> <var-value>2</var-value> >> </var> >> <var> >> <var-name>maxlength</var-name> >> <var-value>255</var-value> >> </var> >> </field> >> <field property="country" >> depends="required,minlength,maxlength" page="3"> >> <arg key="country" position="0"/> >> <arg name="minlength" key="${var:minlength}" >> resource="false" position="1"/> >> <var> >> <var-name>minlength</var-name> >> <var-value>6</var-value> >> </var> >> <var> >> <var-name>maxlength</var-name> >> <var-value>255</var-value> >> </var> >> </field> >> <field property="postalCode" >> depends="required,minlength,maxlength" page="3"> >> <arg key="postalcode" position="0"/> >> <arg name="minlength" key="${var:minlength}" >> resource="false" position="1"/> >> <var> >> <var-name>minlength</var-name> >> <var-value>5</var-value> >> </var> >> <var> >> <var-name>maxlength</var-name> >> <var-value>255</var-value> >> </var> >> </field> >> </form> >> </formset> >> </form-validation> >> On Nov 21, 2004, at 12:07 PM, Jeff Smith wrote: >>> All, >>> >>> Sorry if this has been discussed, I've been digging around on the >>> web and can't seem to find a solution to my problem. I have a 3 step >>> registration process that works like a "wizard". I defined a >>> LookupDispatchAction subclass to handle things like the next and >>> previous button. Everything works great except validation never gets >>> triggered and the page variable on the form bean is always reset to >>> zero. I have confirmed with the debugger that it is the same >>> instance of the form bean throughout the steps. I assume the two >>> problems are related because my validation.xml specifies page >>> numbers greater than zero. I've attached the struts-config.xml and >>> the validation.xml. >>> >>> Any help is appreciated. >>> >>> -jeff >>> >>> >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: [EMAIL PROTECTED] >>> For additional commands, e-mail: [EMAIL PROTECTED] > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]