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)

Reply via email to