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

我有以下请求url:

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

请注意请求参数"startsWith=#"

我无法将"#"作为'startsWith'请求参数的值。 相反,我得到一个空字符串(“”)作为'startsWith'请求参数的值。 有没有办法让"#"作为请求参数的值?

${param.startsWith eq '#'}${param.startsWith eq '#'}

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

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

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

引用RFC – 第3.4节 :

查询组件由第一个问号(“?”)字符表示,并以数字符号(“#”)字符或URI的末尾结束。

在发送请求之前,您需要在查询字符串中对参数进行编码。 例如,在JSP页面中,您可以使用 JSTL标记: