JSR168 portlet请求在#符号后切换参数值

时间:2009-09-21 14:02:28

标签: java jsp parameters jsr168

行动链接的参数之一如下:

itemUrl = feedLink.html#xtor = RSS-3208

当我在processAction()中的后端执行下一个代码时:

String itemUrl = (String) request.getParameter("itemUrl");

,我得到下一个值: feedLink.html

e.g。请求在#符号

之后删除itemUrl值 .jsp文件中的

escapeXml =“true”无效。

2 个答案:

答案 0 :(得分:1)

您必须对参数名称和值进行URI编码 - 您的链接应为 itemUrl = feedLink.html%23xtor = RSS-3208

答案 1 :(得分:1)

URL中#后面的任何内容指定浏览器应显示的页面上的位置;它不是URL本身的一部分。因此,如果您想在URL中使用实际的#,则需要对其进行转义(如果解析器实际上是合规的)。

理论上,您可以手动解析发送给您的整个URL,但更好的解决方案是让您的页面调用者首先向您发送正确的URL(嗯,表示他们想要的URL) ,因为这个问题本身是有效的。