我正在努力开发这样的东西:
在一个manged bean中,有一些String属性以有效的HTML方式编写,即:
String script =" alert(\" hello !!!!! \");";
String div =" Hello!"
这些字段的目的是动态地将html组件放到.xhtml文件中。但是如果正常访问这些字段,它们似乎只是作为文本添加到页面中。无论如何我能做到这些吗?
此外,由于这些字段的实际内容可能非常复杂并且设计是动态的,因此只需将组件放在.xhtml中就不是一种选择。
答案 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" />