我在 Struts2 标签中将文本自动编码为 UTF-8 时遇到了一些问题。
我想将包含 HTML 标记的值从动作类传递到 JSP 页面,但在 struts 标记中,此值会自动编码为 UTF-8,并且 HTML 标记未正确显示。
例如:我有一个param
在动作类中命名的字符串变量
String param=param[0] + "& <br>" + param[1];
这个参数在 JSP 页面中传递并使用 Struts 标签显示在页面中:
<s:property value="%{param}">
我的问题是,在 jsp 页面中,<br>
标签是自动编码的,并且像测试"& <br>"
一样显示,而不是像 HTML 标签一样使用它并显示,"&"
然后输入换行符。
有谁知道我如何跳过这个自动编码过程?
您是否尝试过(记录在案的)属性escapeHtml
?
<s:property value="%{param}" escapeHtml="false" />
PS:补充两点:
您正在使用字符&
,它在 HTML 中很特殊。如果你不打算转义字符串,你应该把它写成&
正如 Rowan C 在他的回答中恰当地指出的那样,在网页中使用未转义的 html 可能很危险,特别是如果字符串(在您的情况下是param
数组)是动态的并且可以由客户端设置。如果你不能信任或正确消毒它,那就不要那样做。严重地。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句