将HTML超链接添加到Java资源包属性文件

时间:2012-03-16 12:25:03

标签: java jsf resourcebundle

我正在使用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']}" />

任何想法?

由于

1 个答案:

答案 0 :(得分:3)

JSF / Facelets默认转义HTML特殊字符,以便在重新显示用户控制的数据时阻止XSS attacks。您可以将<h:outputText>属性明确设置为escape,以false为基础将其关闭。

<h:outputText value="#{messages['clickme']}" escape="false" />

您只需要确保不要对未经过用户控制的数据执行此操作,这些数据是所有,它带有HTTP请求,例如标题,Cookie,参数,正文等等。