Struts 1
  1. Struts 1
  2. STR-3193

Locale Date Validation with Client Side Javascript

    Details

    • Type: Bug Bug
    • Status: Open
    • Priority: Major Major
    • Resolution: Unresolved
    • Affects Version/s: 1.3.10
    • Fix Version/s: Pending Review
    • Component/s: Tag Libraries
    • Labels:
      None
    • Environment:
      Windows XP or Suse 10.2, JBoss 4.2.3, Struts 1.3.10, JDK1.5_16
    • Flags:
      Patch, Important

      Description

      This bug has to do with the struts-taglib package, specifically the code generated by <html:javascript> which comes from the org.apache.struts.taglib.html.JavascriptValidatorTag class.

      My implementation of the patch may not be the most effective way to accomplish this, but the bug prevents a true Locale specific implementation of Forms with Dates.

      From the Struts Validation Documentation (which holds true on the server side validation):
      "If no pattern is specified the default short date format is assumed."

      However, if you define a Form Field as a "date" with no pattern, the client side javascript does not render the datePattern in the javascript and causes a clientside js NPE when checking the length of this.datePattern.

      I have added an additional method for formatting the Locale SHORT date format to fill out in the MM, dd, and yyyy elements required by the static javascript generator from the Commons-Validator project.

      The real patch is when looping over form fields from validation.xml. I check if it is a type "date" then keep track of whether or not a var named "datePattern" exists. If not, I add datePattern based on the Local passed in.

      Please let me know if I can help. This is a really important feature for my application.

      1. JavascriptValidatorTag.java.patch
        3 kB
        David Webb
      2. Struts.patch
        3 kB
        David Webb

        Activity

        Hide
        David Webb added a comment -

        2 pathes. One from branch level and other from file level.

        Show
        David Webb added a comment - 2 pathes. One from branch level and other from file level.
        Hide
        David Webb added a comment -

        Per your request from the mailing list. Here is the Bug I was asking about.

        Show
        David Webb added a comment - Per your request from the mailing list. Here is the Bug I was asking about.
        Hide
        Paul Benedict added a comment -

        David, thanks for the patch. I will look into this.

        Show
        Paul Benedict added a comment - David, thanks for the patch. I will look into this.
        Hide
        Maciej Matys added a comment -

        David shouldn't we use DateFormat.DEFAULT instead of SHORT, we wan't to have default pattern.

        Show
        Maciej Matys added a comment - David shouldn't we use DateFormat.DEFAULT instead of SHORT, we wan't to have default pattern.
        Hide
        David Webb added a comment -

        That sounds fine. The important thing is that is uses a standard pattern that the validator can use. Thanks.

        Show
        David Webb added a comment - That sounds fine. The important thing is that is uses a standard pattern that the validator can use. Thanks.
        Hide
        Maciej Matys added a comment -

        I've voted for it so let's wait for the fix.

        Show
        Maciej Matys added a comment - I've voted for it so let's wait for the fix.

          People

          • Assignee:
            Paul Benedict
            Reporter:
            David Webb
          • Votes:
            1 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:

              Development