Matt, Figured it out.
In the validator-rules.xml there is a required validator: <validator name="required" classname="org.apache.struts.validator.FieldChecks" method="validateRequired" 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.required"/> Problem is, the constructor in the 1.2.9 jar has a org.apache.commons.validator.Validator between ActionMessages and Request. Once I added it like so: <validator name="required" classname="org.apache.struts.validator.FieldChecks" method="validateRequired" methodParams="java.lang.Object, org.apache.commons.validator.ValidatorAction, org.apache.commons.validator.Field, org.apache.struts.action.ActionMessages, org.apache.commons.validator.Validator, javax.servlet.http.HttpServletRequest" msg="errors.required"/> All works great now. I just didn't know how to put this fix into the JIRA? I searched around, but with no luck. Let me know, Scott -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Matt Raible Sent: Wednesday, February 21, 2007 9:48 AM To: users@appfuse.dev.java.net Subject: Re: [appfuse-user] Equinox 1.7 Validation Help Required You'll need to create an account if you don't already have one: http://issues.appfuse.org/secure/CreateIssue!default.jspa Matt On 2/21/07, Scott Purcell <[EMAIL PROTECTED]> wrote: > Yes, I am using Struts 1.x. I would not mind entering it into the JIRA, > but not sure how to go about that. Could you send me a link to the JIRA > and I'll take care of it. > > Scott > > > > -----Original Message----- > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Matt > Raible > Sent: Wednesday, February 21, 2007 9:20 AM > To: users@appfuse.dev.java.net > Subject: Re: [appfuse-user] Equinox 1.7 Validation Help Required > > Can you enter this as an issue in JIRA? I'm assuming you're using > Struts 1.x? > > FWIW, I can reproduce this bug on the demo site: > > http://demo.raibledesigns.com/equinox-struts/users.html > > Matt > > On 2/21/07, Scott Purcell <[EMAIL PROTECTED]> wrote: > > The userForm does not work right out of the box. I did it at home last > > night also with the same results. If you do not enter a lastname in > the > > userform, it still saves to the DB. > > > > > > > > > > Scott > > > > > > > > -----Original Message----- > > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Matt > > Raible > > Sent: Wednesday, February 21, 2007 8:14 AM > > To: users@appfuse.dev.java.net > > Subject: Re: [appfuse-user] Equinox 1.7 Validation Help Required > > > > Looks like a bug to me. Does the validation work on the userForm or > > not? You say it's "broken out of th ebox". Did you fix it or does > > this cause a similar error? > > > > Matt > > > > On 2/21/07, Scott Purcell <[EMAIL PROTECTED]> wrote: > > > > > > > > > > > > > > > Hello, > > > > > > > > > > > > Equinox 1.7 'Struts, Spring, Hibernate' configuration. > > > > > > > > > > > > > > > > > > I am trying to do some validation just like the lastname validation > in > > the > > > userForm.jsp. (that one was broke out of the box also.). I cannot > > figure > > > this out, and would really like to get it working. But I cannot get > > the > > > userform one to work, nor can I get mine to work. I was hoping > someone > > may > > > see a problem somewhere, or be able to understand the error. > > > > > > > > > > > > Thanks, > > > > > > > > > > > > > > > > > > A) The validator plug-in is defined in the struts-config.xml like > so. > > > > > > <plug-in > > > className="org.apache.struts.validator.ValidatorPlugIn"> > > > > > > <set-property > > > > > > property="pathnames" > value="/WEB-INF/validator-rules.xml, > > > > > > > > > /WEB-INF/validation.xml"/> > > > > > > </plug-in> > > > > > > > > > > > > B) I am only trying to validate that the lastname of my form is > > required, so > > > in validation.xml I have this between formset tags. > > > > > > <form name="contactForm"> > > > > > > <field property="contact.lastName" depends="required"> > > > > > > <arg0 key="contact.lastName"/> > > > > > > </field> > > > > > > </form> > > > > > > > > > > > > C) My action extends DispatchAction (copied from the userAction); > > > > > > public ActionForward save(ActionMapping mapping, ActionForm form, > > > > > > HttpServletRequest request, > > > > > > HttpServletResponse response) > > > > > > throws Exception { > > > > > > if (log.isDebugEnabled()) { > > > > > > log.debug("entering 'save' method..."); > > > > > > } > > > > > > > > > > > > ActionMessages errors = form.validate(mapping, request); > > > > > > if (!errors.isEmpty()) { > > > > > > saveErrors(request, errors); > > > > > > return mapping.findForward("edit"); > > > > > > } > > > > > > > > > > > > > > > > > > > > > > > > D) JSP page > > > > > > <html:form action="/contactus.html?method=save"> > > > > > > <table class="detail"> > > > > > > <tr> > > > > > > <th><label for="contact.firstName"><fmt:message > > > key="contact.firstName"/>:</label></th> > > > > > > <td><html:text property="contact.firstName" > > > styleId="contact.firstName"/></td> > > > > > > </tr> > > > > > > > > > > > > <tr> > > > > > > <th><label for="contact.lastName" class="required">* > <fmt:message > > > key="contact.lastName"/>:</label></th> > > > > > > <td> > > > > > > <html:text property="contact.lastName" > > styleId="contact.lastName"/> > > > > > > <span class="fieldError"><html:errors > > > property="contact.lastName"/></span> > > > > > > </td> > > > > > > </tr> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > Error From Tomcat log: > > > > > > at java.lang.Thread.run(Unknown Source) > > > > > > ERROR - DynaValidatorForm.validate(112) | No such validation method: > > > > > > org.apache.struts.validator.FieldChecks.validateRequired(java.lang.Objec > > t, > > > org.ap > > > > > > ache.commons.validator.ValidatorAction, > > > org.apache.commons.validator.Field, > > > org.apache.struts.action.ActionMessages, > > > javax.servlet.http.HttpServletReq > > > > > > uest) > > > > > > org.apache.commons.validator.ValidatorException: No such > > > validation method: > > > > > > org.apache.struts.validator.FieldChecks.validateRequired(java.lang.Objec > > t, > > > > > > org.apache.commons.validator.ValidatorAction, > > > org.apache.commons.validator.Field, > > > org.apache.struts.action.ActionMessages, > > > javax.servlet.http.HttpSer > > > > > > vletRequest) > > > > > > at > > > > > > org.apache.commons.validator.ValidatorAction.loadValidationMethod(Valida > > torAction.java:603) > > > > > > at > > > > > > org.apache.commons.validator.ValidatorAction.executeValidationMethod(Val > > idatorAction.java:533) > > > > > > at > > > org.apache.commons.validator.Field.validateForRule(Field.java:766) > > > > > > at > > > org.apache.commons.validator.Field.validate(Field.java:846) > > > > > > at > > > org.apache.commons.validator.Form.validate(Form.java:290) > > > > > > at > > > org.apache.commons.validator.Validator.validate(Validator.java:354) > > > > > > at > > > > > > org.apache.struts.validator.DynaValidatorForm.validate(DynaValidatorForm > > .java:110) > > > > > > at > > > com.mb.purcell.action.ContactAction.save(ContactAction.java:41) > > > > > > at > > > sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > > > > > > at > > > sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) > > > > > > at > > > sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown > > > Source) > > > > > > at java.lang.reflect.Method.invoke(Unknown Source) > > > > > > at > > > > > > org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.j > > ava:270) > > > > > > at > > > > > > org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:187 > > ) > > > > > > at > > > > > > org.apache.struts.action.RequestProcessor.processActionPerform(RequestPr > > ocessor.java:431) > > > > > > at > > > > > > org.apache.struts.action.RequestProcessor.process(RequestProcessor.java: > > 236) > > > > > > at > > > > > > org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196) > > > > > > at > > > > org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432) > > > > > > at > > > javax.servlet.http.HttpServlet.service(HttpServlet.java:709) > > > > > > at > > > javax.servlet.http.HttpServlet.service(HttpServlet.java:802) > > > > > > at > > > > > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica > > tionFilterChain.java:252) > > > > > > at > > > > > > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt > > erChain.java:173) > > > > > > at > > > > > > org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFi > > lter.java:125) > > > > > > at > > > > > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica > > tionFilterChain.java:202) > > > > > > at > > > > > > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt > > erChain.java:173) > > > > > > at > > > > > > com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter. > > java:118) > > > > > > at > > > > > > com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.j > > ava:52) > > > > > > at > > > > > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica > > tionFilterChain.java:202) > > > > > > at > > > > > > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt > > erChain.java:173) > > > > > > at > > > org.appfuse.web.MessageFilter.doFilter(MessageFilter.java:32) > > > > > > at > > > > > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica > > tionFilterChain.java:202) > > > > > > at > > > > > > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt > > erChain.java:173) > > > > > > at > > > > > > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv > > e.java:213) > > > > > > at > > > > > > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv > > e.java:178) > > > > > > at > > > > > > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java > > :126) > > > > > > at > > > > > > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java > > :105) > > > > > > at > > > > > > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve. > > java:107) > > > > > > at > > > > > > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:1 > > 48) > > > > > > at > > > > > > org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:86 > > 9) > > > > > > at > > > > > > org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.proc > > essConnection(Http11BaseProtocol.java:664) > > > > > > at > > > > > > org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint > > .java:527) > > > > > > at > > > > > > org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollow > > erWorkerThread.java:80) > > > > > > at > > > > > > org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool > > .java:684) > > > > > > at java.lang.Thread.run(Unknown Source) > > > > > > -- > > http://raibledesigns.com > > > > --------------------------------------------------------------------- > > 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] > > > > > > > -- > http://raibledesigns.com > > --------------------------------------------------------------------- > 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] > > -- http://raibledesigns.com --------------------------------------------------------------------- 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]