Hello.

I'm reading the documentation for Struts 2 (after lots of work on Struts 1 and Beehive), and I wonder if an interceptor exists in order to prepare the action after the validation fails, and before going back to the input page. Imagine the following action class :

public class MyAction extends ActionSupport {
  public String displayForm() {
     prepareForInput();
     return INPUT;
  }

  private void prepareForInput() {
// go to the database and get some data in order to display it in the input form page
  }

  public String submitForm() {
     // this action is only called if validation succeeds
// submits the form and returns a redirect result (redirect-after-post)
     return SUCCESS;
  }

  public void validateSubmitForm() {
     // validation logic for the submitForm action
// after this call, if there is an error, the workflow interceptor will return the INPUT result, but the necessary data won't be in the action
     // because the prepareForInput method hasn't been called
  }
}

Is there an interceptor that would call my prepareForInput method?
I could call it in the validateSubmitForm method, but the validation logic would have a side effect, and I wouldn't be able to validate declaratively anymore. I could call the prepareForInput method from the page, but the global exception handling wouldn't work (AFAIK) in the case an exception is thrown from this method. I could use a Prepare interceptor, but the it would prepare regardless of the result of the validation. The best way I see would be to use a subclass of the workflow interceptor (or add another interceptor after validation) that would automatically call a method named, for example, postValidationError or postValidationErrorSubmitForm before returning the INPUT result. Is there such a beast? How do you usually solve this problem?

Thanks.

JB.

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

Reply via email to