java - amp 包含在 url struts 标签中

标签 java tags struts2

在我的网络应用程序中,我使用strust2 url 标记来传递id 等参数,例如,我使用一个链接来删除一个实体,我使用param 来传递要删除的实体的id。我在我的网络应用程序中遵循这一点来添加、编辑、删除实体。

在运行时,有时我没有将参数存储在我的操作的 bean 属性中。当我看到生成的链接时,我得到类似

的内容
<a href='/projit1/p/discuss/viewDiscussion.action?d=11&amp;amp;amp;projid=11&amp;amp;disid=4'>

这些放大器有什么用?为什么他们坐在 Action 调用之间(通过 url 标记 Action 通过链接进行)?当我在我的网络应用程序中来回遍历时,我在请求 URL 中得到了 10s 和 20s 的放大器。这里有什么问题 ?请帮忙。

最佳答案

在 HTML、XHTML 和 XML 中,某些字符被特殊处理。最常用的特殊字符是小于号 (<) 和与号 (&)。 < 仅在标签开头有效,而 & 用于编码字符实体(特殊字符、无法键入的字符等)。因为 & 是特殊的,不能作为属性值的一部分出现,所以它被编码为 &虽然如果您不知道为什么可能看起来很奇怪,但您问题中的 href 值几乎是正确的。在同一个庄园里 < 应该被编码为 <以确保正确的浏览器行为。不编码这些字符可能有效,但不保证有效。

您的 URL 的问题是多个 amp;这表明 href 已被编码多次。第一次 & 被更改为 &当时添加了另一个参数,它是 & 分隔符。然后对整个 URL 进行第二次编码,将第一个 & 更改为 &amp;第二个是&。然后出于某种原因,该 URL 被第三次编码,导致第一次更改为 &amp;amp;第二个是&amp;。要删除多余的 amp;s,您需要确保 URL 只针对 HTML 编码一次,而不是多次。

您生成的标签应如下所示:

<a href='/projit1/p/discuss/viewDiscussion.actiond=11&amp;projid=11&amp;disid=4'>

关于java - amp 包含在 url struts 标签中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2422377/

相关文章:

java - 如何在 Struts2 中使用 anchor 而不是提交按钮?

python beautifulsoup 将属性添加到没有值的标签

jsp - 没有修改器和访问器(setters/getters)的参数以及 Struts 2 中的参数拦截器

java - 修剪 Struts2 文本字段字符串输入

java - Struts2 重定向具有哈希值的 url

java - gradle的新功能-为什么会有 Debug模式和 Release模式

javascript - 如何通过更改所选语言来切换浏览器中的整个 HTML 文件?

java - Struts2 - 如何访问嵌套枚举

java - 我执行了dao层的mybatis update方法,但是数据库没有更新

java - 绘图和其他线图的图像增强