【发布时间】:2014-12-03 18:55:46
【问题描述】:
我在我的 struts 2 应用程序中遇到了与 url 编码相关的问题。我做了一些研究,但找不到正确的方法。
我的应用程序动态准备 url 并通过查询数据库获取变量。我期望的有效 URL 是
http://www.test.com/language=english&numbers=X,Y,Z
但是,由于 URL 编码在 UI 上时,我得到的 URL 如下
http://www.test.com/language=english&numbers=X%2CY%2CZ
numbers 是单个变量,数据库返回 X,Y,Z 的值。
我正在准备jsp中的URL如下
<s:url id="testUrl" escapeAmp="false" value="http://www.test.com">
<s:param name="language" value="%{'english'}" />
<s:param name="numbers" value="%{Num}" />
</s:url>
我确实在 s:url 标记中尝试了 encode="false" 但无济于事。
testUrl 是下面的超链接
<a href="<s:property value="#testUrl" />" target="_blank">
<s:property value="#Num" />
</a>
我了解逗号(,) 是保留字符,应该进行编码。但是,在我的 URL 中,我需要该逗号以便在单击时成功执行 URL。
我正在使用字符集 iso-8859-1。
【问题讨论】:
-
你想传递一个数字列表吗?
-
那么你的网址应该看起来像这样 - `numbers=X&numbers=Y&numbers=Z。
-
很遗憾,这是一个第三方 URL,需要 X、Y、Z 格式的数字列表。我设法在单击 URL 时对其进行解码。可能不是最好的方法,但目前它正在为我的目的服务。我会为此更新答案。