Jsp HTML标记在Struts2标记中从文本自动编码为UTF-8
我在Struts2标记中从文本自动编码到UTF-8时遇到一些问题 我想将一个包含HTML标记的值从action类传递到JSP页面,但在Struts标记中,该值自动编码为UTF-8,并且HTML标记显示不正确 例如: 我在action类中有一个名为param的字符串变量Jsp HTML标记在Struts2标记中从文本自动编码为UTF-8,jsp,encoding,struts2,struts-tags,Jsp,Encoding,Struts2,Struts Tags,我在Struts2标记中从文本自动编码到UTF-8时遇到一些问题 我想将一个包含HTML标记的值从action类传递到JSP页面,但在Struts标记中,该值自动编码为UTF-8,并且HTML标记显示不正确 例如: 我在action类中有一个名为param的字符串变量 String param=param[0] + "& <br>" + param[1]; 我的问题是,在JSP页面中,标记是自动编码的,并且像<br>一样显示,而不是像HTML标记
String param=param[0] + "& <br>" + param[1];
我的问题是,在JSP页面中,标记是自动编码的,并且像<br>一样显示,而不是像HTML标记一样使用它
有人知道我如何跳过这个自动编码过程吗?您是否尝试过escapeHtml属性
附:另外两项注释:
您正在使用字符&,这在HTML中是特殊的。如果你不想逃出这个字符串,你
正如Rowan C在他的回答中恰当地指出的那样,在网页中使用未转换的html可能是危险的,特别是如果您的示例中的字符串param数组是动态的,并且可以由客户端设置。如果你不能信任它或对它进行适当的消毒,那么就不要这样做。真的
默认情况下,转义html代码以防止XSS安全冲突。如果您信任使用此标记显示的内容,则可以使用其中一个转义属性禁用此过程:
Name Required Default Evaluated Type Description
escapeCsv false false false Boolean Whether to escape CSV (useful to escape a value for a column)
escapeHtml false true false Boolean Whether to escape HTML
escapeJavaScript false false false Boolean Whether to escape Javascript
escapeXml false false false Boolean Whether to escape XML
在您的代码中,您可以使用
<s:property value="%{param}" escapeHtml="false"/>
Name Required Default Evaluated Type Description
escapeCsv false false false Boolean Whether to escape CSV (useful to escape a value for a column)
escapeHtml false true false Boolean Whether to escape HTML
escapeJavaScript false false false Boolean Whether to escape Javascript
escapeXml false false false Boolean Whether to escape XML
<s:property value="%{param}" escapeHtml="false"/>