我正在使用Java资源包管理邮件。
我需要在JSF页面中显示一条消息,该消息还包含一些HTML标记。 不幸的是,HTML代码也显示在屏幕上,而不是由浏览器呈现为HTML:
即
Click me <a href="link....">here</a>
我在属性文件中的消息:
clickme=Click me <a href="link....">here</a>
我的JSF:
<h:outputText value="#{messages['clickme']}" />
任何想法?
由于
答案 0 :(得分:3)
JSF / Facelets默认转义HTML特殊字符,以便在重新显示用户控制的数据时阻止XSS attacks。您可以将<h:outputText>
属性明确设置为escape
,以false
为基础将其关闭。
<h:outputText value="#{messages['clickme']}" escape="false" />
您只需要确保不要对未经过用户控制的数据执行此操作,这些数据是所有,它带有HTTP请求,例如标题,Cookie,参数,正文等等。