我有以下请求网址:
localhost:8080/MyApp/browse/alphabetical/result?startsWith=#&page=1&size=10&sort=title&order=asc
注意request参数"startsWith=#"。
"startsWith=#"
我无法获取request参数"#"的值'startsWith'。相反,我得到一个空字符串(“”)作为'startsWith'request参数的值。有什么可能的方法来获取"#"request参数的值?
"#"
'startsWith'
这不起作用: ${param.startsWith eq '#'}
${param.startsWith eq '#'}
这项工作: ${param.startsWith eq ''}
${param.startsWith eq ''}
如果没有办法解决这个问题,我将不得不求助于startsWith=0 ... startsWith=9而不是startsWith=#,我实在不想
startsWith=0 ... startsWith=9
startsWith=#
您不能发送#带有这样的查询字符串。它不会成为查询字符串的一部分。
#
引用RFC- 第3.4节:
查询组件由第一个问号(“?”)字符指示,并由数字符号(“#”)字符或URI末尾终止。
发送请求之前,您需要将参数编码为查询字符串。例如,在JSP页面中,您可以使用<c:url>JSTL标签:
JSP
<c:url>
<c:url value="/MyApp/browse/alphabetical/result" var="url"> <c:param name="startsWith" value="#" /> <!-- Rest of the parameters --> </c:url>