You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by Nick Curry <nc...@networkphotographers.com> on 2003/05/08 12:07:14 UTC

Re: DynaValidatorForm not getting validated by struts validation plugin -(note this is a DynaValidatorForm not a DynaActionForm :-D)

thanks for your reply-

i think validate=true is default - i added it in just in case though,
but it made no difference...

i wonder if it has to do with the validation occuring in a module. I had
a quick look at the source for DynaValidatorForm and it uses the
ServletContext in there - I'm not an expert (at all), but could that
mean that it's ignoring the module bit of Struts and therefor getting
all of the paths and mappings wrong? I'm going to try it out using the
root module and see if that works... 

Nick



> I can't remember whether validate="true" is default or not,
> so I always explicitly add it.
> 
> You don't have that in your action mapping.
> 
> if the default is 'true', then, sorry, ignore.
> 
> -jeff
> 
> On Wednesday, May 7, 2003, at 10:08  AM, Nick Curry wrote:
> 
> > hi there,
> >
> > I am trying to get a form implementing the DynaValidaForm class to
> > validate, but the validation doesn't seem to take place at all. There
> > were a couple of previous threads about this, but none seem to come to 
> > a
> > solution, so I will post the details of my problems here. I really 
> > can't
> > see what i'm doing wrong, perhaps someone else will see something
> > blindingly obvious that i've missed...
> >
> > I am using Struts 1.1 (w/ JDK 1.4) using modules. The form I am trying
> > to validate is called test_searchForm, and is defined in
> > struts-conf-mymodule.xml as follows:
> >
> > __________________________________________________________________
> > <form-bean name="test_searchForm"
> > 	           type="org.apache.struts.validator.DynaValidatorForm">
> >
> > 			<form-property name="needle"
> >
> > 			               type="java.lang.String"/>
> >
> > 			<form-property name="column"
> >
> > 			               type="java.lang.String"/>
> >
> > 			<form-property name="table"
> >
> > 			               type="java.lang.String"/>
> >
> > 		</form-bean>
> > __________________________________________________________________
> >
> >
> > I am using that form in an action which is defined as such:
> > __________________________________________________________________
> > <action path="/test_searchTest"
> >
> > 		        type="sb_nick.search.searchTestAction"
> >
> > 		        name="test_searchForm"
> >
> > 		        scope="request"
> >
> > 		        input="/test_searchTestForm.vm">
> >
> > 			<forward name="test_showResults"
> >
> > 			         path="/test_searchTestResults.vm"
> >
> > 			         redirect="false"/>
> >
> > 			<forward name="test_failure"
> >
> > 			         path="/test_searchTestForm.vm"
> >
> > 			         redirect="false"/>
> >
> > 		</action>
> > __________________________________________________________________
> >
> >
> > (as you might notice, I am also using Velocity for the templates, 
> > though
> > I am having no problems with that)
> >
> > The relevant part of the sb_nick.search.searchTestAction.java file is 
> > as
> > follows:
> > __________________________________________________________________
> > public ActionForward execute(ActionMapping mapping,
> > 				 ActionForm form,
> > 				 HttpServletRequest request,
> > 				 HttpServletResponse response)
> > 	throws Exception {
> > 	
> >       // Validate the request parameters specified by the user
> > 	ActionErrors errors = new ActionErrors();
> > 	
> > 	
> > 	DynaValidatorForm myres=(DynaValidatorForm)form;
> > 	String needle = (String)myres.get("needle");
> > 	String column = (String)myres.get("column");
> > 	String table = (String)myres.get("table");
> >
> > 	
> > 	   //manually validation test
> > 	   if (needle.length()<1){
> > 		   errors.add(ActionErrors.GLOBAL_ERROR,
> >                    new ActionError("test.error_required", "search
> >
> >                    string"));
> > 	   }
> > 	// Report any errors we have discovered back to the form
> > 	if (!errors.isEmpty()) {
> > 	    saveErrors(request, errors);
> >             return (mapping.getInputForward());
> > 	}
> > __________________________________________________________________
> >
> > The manual validation part works fine (as in forwarding to the input 
> > URI
> > works and the error message gets passed through), however nothing else
> > seems to get validated. The validator plugin is enabled, I tried 
> > putting
> > the validator rules and definitions in both the /WEB-INF folder of the
> > main appliaction and locally to the modules. For the local version, the
> > struts-config-mymodule.xml file looks as such:
> > __________________________________________________________________
> > <plug-in className="org.apache.struts.validator.ValidatorPlugIn">
> >
> > 		<set-property property="pathnames" value="sb_nick-validation.xml,
> >               sb_nick-validator-rules.xml"/>
> >
> > 	</plug-in>
> > __________________________________________________________________
> >
> >
> > The validation.xml files looks as such:
> > __________________________________________________________________
> >             <form name="test_searchForm">
> >             <field
> >                 property="needle"
> >                 depends="required">
> >              </field>
> > 	     <field
> >                 property="column"
> >                 depends="required">
> > 			<msg name="required" key="test.error_required">
> >              </field>
> > 	     <field
> >                 property="table"
> >                 depends="required">
> >                     	<msg name="required" key="test.error_required">
> >             </field>
> > __________________________________________________________________
> >
> > Everything else is as default. What am I doing wrong? I spent the whole
> > day trying to figure this out but i'm not getting anywhere...
> >
> > thanks,
> > Nick
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: struts-user-unsubscribe@jakarta.apache.org
> > For additional commands, e-mail: struts-user-help@jakarta.apache.org
> >
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: struts-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: struts-user-help@jakarta.apache.org
> 
> 



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