3

我有以下请求网址:

localhost:8080/MyApp/browse/alphabetical/result?startsWith=#&page=1&size=10&sort=title&order=asc

注意请求参数"startsWith=#"

我无法获取请求参数"#"的值。'startsWith'相反,我得到一个空字符串 ("") 作为'startsWith'请求参数的值。有没有可能的方法来获取"#"请求参数的值?

这不起作用:${param.startsWith eq '#'}

这有效:${param.startsWith eq ''}

如果没有办法处理这个问题,我将不得不求助于 usingstartsWith=0 ... startsWith=9而不是startsWith=#,我真的不想要

4

1 回答 1

6

您不能#像这样发送带有查询字符串。它不会是查询字符串的一部分。

引用RFC - 第 3.4 节

查询组件由第一个问号 ("?") 字符指示,并以数字符号 ("#") 字符或 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>
于 2013-08-10T18:13:01.163 回答