Tom Bednarz wrote:
I have a FormBean derived from ValidatorActionForm. I define validation rules for certain properties in validation.xml.

No I like to add some additional validations which depend on user input. I thought, I can handle this in the validate(..) method but it gets never called!

I implemented something like:

public class QueryTripsForm extends ValidatorActionForm
{
   ...
   public ActionErrors validate(ActionMapping mapping,
            javax.servlet.ServletRequest request)
   {
    ActionErrors e = null;
    super.validate(mapping, request);
    // doing some special checks here
// ...... return e;
   }
   ....
}

That looks OK. Are you sure you want to extend ValidatorActionForm rather than just ValidatorForm? The effect is subtly different. You haven't posted your validation config, so I can't tell which would be correct for your useage.

Why is this validate method never called? (validate is set to true, see below)

    <action
      input="/form/queryTrips.jsp"
      name="queryTripsForm"
      path="/listTrips"
      scope="request"
      validate="true"
      type="ch.smartsol.struts.action.ListTripsAction">
      <forward name="Success" path="/template/ShowTripsResult.jsp" />
    </action>

How is the form declared in struts-config.xml? What URL are you accessing? Assuming your form is declared with the name 'queryTripsForm' and you're actually hitting this action mapping, validate() should be getting called I think.

Is there any way to combile 'default' validations defined in validation.xml with additional validations implemented in the validate() method??

Yes, with a slight correction to your code above:

    ActionErrors e = super.validate(mapping, request);

You need to capture the errors from the 'default' validation process or they'll be discarded.

L.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to