Uploaded image for project: 'Struts 1'
  1. Struts 1
  2. STR-2020

Improve error detail when form validation fails from absent ActionServlet

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Minor
    • Resolution: Fixed
    • 1.1.0
    • 1.4.0
    • Core
    • None
    • Operating System: other
      Platform: Other
    • 27910

    Description

      In my multi-step form wizard, hidden form fields may be a bad idea for security
      reasons. Therefore, I keep a copy of the form in the session and incrementally
      add the values gathered from the browser.
      There arose even a scenario where it was advisable to set some values in that
      form even without first doing a PropertyUtils.copyProperties from a form coming
      from a browser. A subsequent .validate() then causes the above nullPointer
      exception.

      Suggestion:
      When doing the
      ServletContext application = getServlet().getServletContext();
      in the ValidatorForm, first test whether the "getServlet()" really returns other
      than null and otherwise return a decent error message.

      I am not fully clear why the problem arises, but I guess that ValidatorForm()
      not having a constructor method is part of the reason for this.
      Anyway, I got it working by extending my form as follows:
      public class MyForm extends ValidatorForm
      public MyForm()

      { super(); }

      public MyForm(ActionServlet servlet) {
      this();
      if (super.getServlet() == null) {
      if (servlet == null)

      { log.error("servlet == null"); }

      else

      { super.setServlet(servlet); log.debug("set servlet: " + servlet); }

      } else

      { log.debug("super.getServlet(): " + super.getServlet()); }

      when creating the form, I call it with
      MyForm myForm = new MyForm(getServlet());

      Attachments

        Issue Links

          Activity

            People

              pbenedict Paul Benedict
              hauser@acm.org Ralf Hauser
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: