【问题标题】:JSF: Dynamically inject html components and scripts inside a page or template [duplicate]JSF:在页面或模板中动态注入html组件和脚本[重复]
【发布时间】:2015-10-15 10:00:54
【问题描述】:

我正在尝试开发这样的东西:

在管理的 bean 中,有一些字符串属性以有效的 HTML 方式编写,即:

String script = "alert(\"hello!!!!!\");";

String div = "你好!"

这些字段的目的是动态地将 html 组件放到 .xhtml 文件中。但是,如果这些字段可以正常访问,它们似乎只是作为文本添加到页面中。无论如何我可以实现这些吗?

此外,由于这些字段的实际内容可能相当复杂,并且设计是动态的,因此仅将组件放在 .xhtml 中是不可行的。

【问题讨论】:

    标签: javascript jsf


    【解决方案1】:

    您可以将<h:outputText>escape="false" 一起使用。这样生成的东西将是 html 代码,而不仅仅是一些文本。

    例如,让myBean 成为具有以下代码的托管 bean,

    String div = "<div>Hello World</div>";

    在你的.xhtml,你会写,

    <h:outputText value="#{myBean.div}" escape="false" />

    这将导致<div>Hello World</div> 作为 html 代码的一部分被注入,换句话说,<div> 标记将被识别。

    javaScript 代码也可以模拟类似的东西,例如,

    String scriptCode = "<script>function alertHello(){alert('Hello World')}</script>";

    在你的.xhtml,你会写,

    <h:outputText value="#{myBean.scriptCode}" escape="false" />

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-02-28
      • 1970-01-01
      • 1970-01-01
      • 2020-08-06
      • 1970-01-01
      • 2013-04-26
      • 1970-01-01
      • 2019-10-30
      相关资源
      最近更新 更多