如何像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控件。
答案 0 :(得分:0)
这是一个非常糟糕的主意。 JSF标签必须放在Facelet文件中,文本必须放在DB中。在存储到DB之前,不应手动将JSF标记添加到文本中。您应该在显示来自DB的文本时在Facelet文件中执行此操作。这就是MVC的“V”应该如何工作。
如果确实坚持这样做(这很容易发生安全攻击而你必须做很多验证才能防止这种情况发生),那么你最好能做的就是创建一个Facelets { {1}}从数据库获取数据,将其作为Facelet文件保存在内存或磁盘上,并将ResourceResolver
返回给它。