Jsp HTML标记在Struts2标记中从文本自动编码为UTF-8

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标记

我在Struts2标记中从文本自动编码到UTF-8时遇到一些问题

我想将一个包含HTML标记的值从action类传递到JSP页面,但在Struts标记中,该值自动编码为UTF-8,并且HTML标记显示不正确

例如: 我在action类中有一个名为param的字符串变量

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"/>