首页 文章

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

提问于
浏览
4

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

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

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

Hello <b>{username}</b>!

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

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

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

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

有没有类似的方法/库?

1 回答

  • 2

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

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

相关问题