我在阅读包含'&'的值时遇到问题来自url使用java spring。
我的summary.jsp文件包含以下代码: `
<h3>
<fmt:message key="contact.title"/>
<c:if test="${!editMode}">
<label class="eightyfivefont">
<a class="termslink eightyfivefont"
href="?submitForm=true&
institutionName=<c:out value="${institution.institutionName}" />&
repositoryName=<c:out value="${institution.repositoryName}" />&
editMode=true">
(edit)</a>
</label>
</c:if>
</h3>
`
产生以下网址:
... summary.html submitForm =真安培; institutionName =的R&amp;的R&amp; repositoryName =的R&amp; R
问题是当我尝试获取值为“ r&amp; r ”的 institutionName 时。
使用以下命令获取值时:
String name = request.getParameter("institutionName");
它只获取字符串“r”而不是“r&amp; r”。
该字符串作为"<institutionName>r&r</institutionName>"
存储在XML文件中,使用以下代码进行解析和添加:
Document doc = DocumentHelper.createDocument();
Element root = doc.addElement("institution");
并从xml中读取:
Document doc = DocumentHelper.parseText(xml);
Element root = doc.getRootElement();
(我认为问题不在于XML)。
这个问题有解决方案吗?
答案 0 :(得分:1)
encodeURIComponent('&') = "%26"
您应该可以使用JavaScript。或者,当然是一些Java方法,如果在jsp本身中创建了URL。
答案 1 :(得分:0)
您应该使用URLEncoder
对institutionName
java.net.URLEncoder.encode("r&r", "UTF-8")
这将输出URL编码,这可以作为GET参数:
r%26r
答案 2 :(得分:0)
检查此answer。创建自定义EL函数或者您可以使用scriptlet,但不建议使用。