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]