https://bz.apache.org/bugzilla/show_bug.cgi?id=69570

            Bug ID: 69570
           Summary: The URL construction error of the tag <JSP:include>
           Product: Tomcat 10
           Version: 10.1.30
          Hardware: PC
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Jasper
          Assignee: dev@tomcat.apache.org
          Reporter: gon...@huiqing-sh.com
  Target Milestone: ------

For JSP code like this:

<jsp:include page="/appmenu.do?method=tinit" flush="true">
        <jsp:param name="linkto" value="Something"/>
</jsp:include>

In 10.1.30 and higher(includes 10.1.34), It will be compiled to:

      String _jspx_temp1_url = "/appmenu.do?method=tinit";
      String _jspx_temp1_requestEncoding = request.getCharacterEncoding();
      org.apache.jasper.runtime.JspRuntimeLibrary.include(request, response,
_jspx_temp1_url + "?" +
org.apache.jasper.runtime.JspRuntimeLibrary.URLEncode("linkto",
_jspx_temp1_requestEncoding)+ "=" +
org.apache.jasper.runtime.JspRuntimeLibrary.URLEncode("Something",
_jspx_temp1_requestEncoding), out, true);

In summary, when the parameter "page" of the tag <jsp:include> already contains
character "?", compiler still uses "?" to append the parameter of the tag
<jsp:param>.

For reference:
In 10.1.28, The compiled result of the JSP code mentioned above is:

      org.apache.jasper.runtime.JspRuntimeLibrary.include(request, response,
"/appmenu.do?method=tinit" + "&" +
org.apache.jasper.runtime.JspRuntimeLibrary.URLEncode("linkto",
request.getCharacterEncoding())+ "=" +
org.apache.jasper.runtime.JspRuntimeLibrary.URLEncode("Something",
request.getCharacterEncoding()), out, true);

-- 
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to