【问题标题】:request.getParameter - unable reading &request.getParameter - 无法读取 &
【发布时间】:2014-07-14 09:27:30
【问题描述】:

我在使用 java spring 从 url 中读取包含“&”的值时遇到问题。

我的 summary.jsp 文件包含以下代码: `

<h3>
<fmt:message key="contact.title"/>
<c:if test="${!editMode}">
&nbsp;<label class="eightyfivefont">
<a class="termslink eightyfivefont"
          href="?submitForm=true&amp;
            institutionName=<c:out value="${institution.institutionName}" />&amp;
            repositoryName=<c:out value="${institution.repositoryName}" />&amp;
            editMode=true">
 (edit)</a>
</label>
</c:if>
</h3>

`

产生以下网址:

...summary.html?submitForm=true&institutionName=r&r&repositoryName=r&r

问题是当我试图获取具有值“r&r”的institutionName时。

使用以下命令获取值时:

String name = request.getParameter("institutionName");

它只获取字符串“r”而不是“r&r”。

字符串以"&lt;institutionName&gt;r&amp;amp;r&lt;/institutionName&gt;" 的形式存储在 XML 文件中,并使用以下代码进行解析和添加:

Document doc = DocumentHelper.createDocument();
Element root = doc.addElement("institution");

以及从 xml 中读取:

Document doc = DocumentHelper.parseText(xml);
Element root = doc.getRootElement();

(我认为问题不在于 XML)。

这个问题有解决办法吗?

【问题讨论】:

    标签: java spring servlets request getparameter


    【解决方案1】:

    & 用于划分键值对。如果您想将其作为值或键,那么您必须对其进行 urlencode。例如,像这样:

    encodeURIComponent('&') = "%26"
    

    您应该能够为此使用 JavaScript。或者,当然,一些 Java 方法,如果 URL 是在 jsp 本身中创建的。

    【讨论】:

    • 我应该如何使用它并与它结合:institutionName=&lt;c:out value="${institution.institutionName}" /&gt;
    • 我还建议 praki 的链接。
    【解决方案2】:

    您应该使用URLEncoder 对机构名称进行编码

    java.net.URLEncoder.encode("r&r", "UTF-8")
    

    这会输出 URL 编码的,可以作为 GET 参数:

    r%26r
    

    【讨论】:

    • 我应该如何使用它并与它结合:institutionName=&lt;c:out value="${institution.institutionName}" /&gt;
    • 我能想到的最简单的方法是从您的控制器设置编码机构.institutionName。更好的方法是遵循@praki 的建议。
    【解决方案3】:

    检查此answer。创建自定义 EL 函数,否则您可以使用 scriptlet,但不建议这样做。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-01
      • 2011-05-19
      • 1970-01-01
      • 1970-01-01
      • 2012-05-23
      • 2012-05-23
      • 2017-09-30
      相关资源
      最近更新 更多