我有以下请求网址:
localhost:8080/MyApp/browse/alphabetical/result?startsWith=#&page=1&size=10&sort=title&order=asc
请注意请求参数"startsWith=#"
。
我无法将"#"
作为'startsWith'
请求参数的值。相反,我得到一个空字符串(“”)作为'startsWith'
请求参数的值。有没有办法让"#"
作为请求参数的值?
这不起作用:${param.startsWith eq '#'}
这项工作:${param.startsWith eq ''}
如果无法解决此问题,我将不得不使用startsWith=0 ... startsWith=9
代替startsWith=#
,我真的不想要
答案 0 :(得分:6)
您无法像这样发送带有查询字符串的#
。它不会是查询字符串的一部分。
查询组件由第一个问题指示 标记(“?”)字符并以数字符号(“#”)字符结束 或者在URI的末尾。
在发送请求之前,您需要在查询字符串中对参数进行编码。例如,在JSP
页面中,您可以使用<c:url>
JSTL标记:
<c:url value="/MyApp/browse/alphabetical/result" var="url">
<c:param name="startsWith" value="#" />
<!-- Rest of the parameters -->
</c:url>