是否有标准的JSF方式或开源库允许输出转义文本但_with_html格式?

我们需要输出文本,该文本是数据库中静态文本和动态值的组合,使用具有特定于语言的静态文本块的消息属性来解析全文.

我们需要转义输出文本以防止XSS攻击.

但是,我们还需要将格式应用于完整字符串,例如:

您好< b> {username}< / b>!

这当然是伪语法,{username}是要用真实用户名替换的变量,其他文本是静态的并且在消息属性中定义(例如:“Helloy< b> {0}< / b> !“).

一个普通的JSF outputText将无法工作,因为它将逃避一切或什么都没有,从而破坏我们的格式.

请注意,我们无法从这些片段中创建“真正的”JSF组件,因为变量字段的位置和排序是依赖于语言的(例如德语与英语中的字序排列不同).

Seam有一个名为formattedText的组件来处理这个问题,并且有一个优雅的解决方案.但是我们不会(也不能)在我们的应用程序中使用Seam.

有没有类似的方法/库?

最佳答案 只需在输出参数上应用JSTL
fn:escapeXml即可.

<h:outputFormat value="#{text['generic.welcome']}" escape="false">
    <f:param value="#{fn:escapeXml(user.name)}" />
</h:outputFormat>
点赞