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.Object,
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.Object,

 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(ValidatorAction.java:603)

        at
org.apache.commons.validator.ValidatorAction.executeValidationMethod(ValidatorAction.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.java:270)

        at
org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:187)

        at
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.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(ApplicationFilterChain.java:252)

        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)

        at
org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125)

        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)

        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)

        at
com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:118)

        at
com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:52)

        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)

        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)

        at
org.appfuse.web.MessageFilter.doFilter(MessageFilter.java:32)

        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)

        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)

        at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)

        at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.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:148)

        at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)

        at
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)

        at
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)

        at
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.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]

Reply via email to