You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by Elie Medeiros <nc...@networkphotographers.com> on 2003/10/10 11:29:07 UTC

Problem validating form manually in DispatchAction

Hi there,

am having a problem validating a form manually using the
DynaValidatorForm.validate() function. For some reason, when validation
is carried out this way it only seems to find errors in one of the form
fields - however, if I set the validate="true" property in the
struts-module-config.xml file, validation does seem to be carried out
properly, which suggests to me that I did not make a mistake in the
validation configuration. Since I want to use DispatchAction however, I
can't use validate="true", as I need to validate the form selectively
for one of the methods only. 

I have tried using ValidatorLookupdispatchForm, but can't use it as
Struts 1.1 (which I am using) seems to have a bug with the set-property
tag in the module-config.xml file. Also tried latest version of Struts
(1.1, was using 1.1rc3) and of the validator (1.0, 1.02, latest nightly
build). My code is as follows - pretty straightforward:

<Action>
		DynaValidatorForm thisForm = (DynaValidatorForm)form;
		ActionErrors errors=thisForm.validate(mapping,request);
		
                Integer var1= (Integer)thisForm.get("var1");
                (... get more form vars...)
		
		//if errors, back to form
		if (!errors.isEmpty()) {
			saveErrors(request, errors);

			return mapping.getInputForward();
		 }
</Action>

<struts-module-config.xml>
	<action input="/editUserDetails.vm" name="details_form"
			path="/details" 
			scope="request"
			parameter="method"
			type="com.inc.modules.users.DetailsAction"
			validate="false">
		<!-- not working in struts 1.1
		<set-property property="validateMethod(doEdit)" value="true"/>
		<set-property property="validateMethod(viewEdit)" value="false"/>
		<set-property property="validateMethod(viewDetails)" value="false"/> 
		-->
		   <forward name="view" path="/viewUserDetails.vm" redirect="false"/>
	</action>
</struts-module-config.xml>

<validation-module.xml>
	<form name="details_form">
		<field
				property="var1"
				depends="required,integer">
					<msg name="required" key="errors.required"/>
					<arg0 name="required" key="forms.var1"/>
					<msg name="integer" key="errors.integer"/>
					<arg0 name="integer" key="forms.var1"/>
		</field>
	</form>
</validation-module.xml>

I have spent almost 2 days trying to figure ways of getting around this
- anyone have any ideas?

Thanks,
Elie


---------------------------------------------------------------------
To unsubscribe, e-mail: struts-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: struts-user-help@jakarta.apache.org