如何在bean的String字段中在html页面上呈现JSF标记

时间:2011-05-02 16:45:22

标签: html jsf jsf-2

如何像HTML标签一样呈现JSF标签?

例如,我在字符串字段中有一些html代码:

<pre>String code = "example <br/> example";</pre>

如果我使用

<pre><h:outputText value="#{bean.code}" escape="false"/></pre>

我会得到

<pre>example
example</pre>

现在我想以相同的方式呈现jsf组件。例如:

 <pre>String code = '<h:button value="something" action="something"/>';</pre>

但它将按原样渲染。我认为必须先将JSF servlet翻译成html标签。我怎么能以这种方式呈现JSF控件?我有包含大量存储在数据库中的JSF控件(文章)的文本,我需要从中轻松渲染JSF控件。

1 个答案:

答案 0 :(得分:0)

这是一个非常糟糕的主意。 JSF标签必须放在Facelet文件中,文本必须放在DB中。在存储到DB之前,不应手动将JSF标记添加到文本中。您应该在显示来自DB的文本时在Facelet文件中执行此操作。这就是MVC的“V”应该如何工作。

如果确实坚持这样做(这很容易发生安全攻击而你必须做很多验证才能防止这种情况发生),那么你最好能做的就是创建一个Facelets { {1}}从数据库获取数据,将其作为Facelet文件保存在内存或磁盘上,并将ResourceResolver返回给它。