一尘不染

如果值是哈希符号(#),如何获取请求参数值

jsp

我有以下请求网址:

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

注意request参数"startsWith=#"

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

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

这项工作: ${param.startsWith eq ''}

如果没有办法解决这个问题,我将不得不求助于startsWith=0 ... startsWith=9而不是startsWith=#,我实在不想


阅读 272

收藏
2020-06-10

共1个答案

一尘不染

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

引用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>
2020-06-10