JSF:在页面或模板中动态注入html组件和脚本

时间:2015-07-24 16:26:46

标签: javascript jsf

我正在努力开发这样的东西:

在一个manged bean中,有一些String属性以有效的HTML方式编写,即:

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

String div =" Hello!"

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

此外,由于这些字段的实际内容可能非常复杂并且设计是动态的,因此只需将组件放在.xhtml中就不是一种选择。

1 个答案:

答案 0 :(得分:4)

您可以将<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" />