Uploaded image for project: 'Wicket'
  1. Wicket
  2. WICKET-3800

StatelessForm + IndexedParamUrlCodingStrategy: URL path params are not url-encoded

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 1.4.17
    • 1.5.0
    • wicket
    • None
    • embedded jetty, glassfish 3.1

    Description

      When using a StatelessForm on a page mounted with IndexedParamUrlCodingStrategy/MixedParamUrlCodingStrategy, parameters added to the URL path are not url-encoded.

      It's actually coming from RequestCycle.urlFor(). There is a note on line 917 of that file indicating "Do not encode values here. It is the encoder's job to do the endoding". So perhaps I'm doing something wrong, but I'm surprised to see different behavior when the form is stateless.

      Another user reported what I believe is probably the same issue here:
      http://apache-wicket.1842946.n4.nabble.com/StatelessForm-problem-Not-all-parameters-were-encoded-td1887698.html

      In that thread Igor responded "forms do not support indexed strategies since they need actual parameternames", which frankly, I do not understand. I'm adding parameters like:

      PageParameters params = new PageParameters();
      params.add("0", input0.getModelObject());
      setResponsePage(HomePage.class, params);

      and I assume that "0" qualifies as a named parameter.

      I will attach a quickstart to demonstrate.

      Attachments

        1. stateless-form-bug.tar.gz
          4 kB
          George Armhold
        2. stateless-form-bug-1.5.tgz
          5 kB
          Martin Tzvetanov Grigorov

        Activity

          People

            Unassigned Unassigned
            armhold@cs.rutgers.edu George Armhold
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: