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

JSF: Dynamically inject html components and scripts inside a page or template

本文关键字:注入 动态 html 组件 脚本 JSF      更新时间:2023-09-26

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

在托管bean中,有一些字符串属性是以有效的HTML方式编写的,例如:

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

Stringdiv = "Hello!"

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

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

可以同时使用<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" />