在jsf托管bean中以编程方式创建html组件

时间:2012-09-06 14:00:41

标签: html jsf

我有以下代码:

<div id="mws-navigation">
    <ul>
        <li><p:commandLink
                value="#{contentMB.msg.welcome_title.value}" actionListener="#{cleanUpMB.alChangeArea}"
                styleClass="mws-i-24 i-home" action="#{welcomeMB.aLoadDashboard}" global="false" /></li>
        <li><p:commandLink
                value="#{contentMB.msg.layout_menu_measures.value}"
                rendered="#{userSessionMB.measureEdit or userSessionMB.measureCreate}"
                styleClass="mws-i-24 i-table-1" global="false" />
            <ul>
                <li><p:commandLink
                        value="#{contentMB.msg.layout_menu_mm_findMeasures.value}"
                        rendered="#{userSessionMB.measureEdit}"
                        actionListener="#{cleanUpMB.alChangeArea}"
                        action="#{chooseMeasureControllerMB.aChoose}" /></li>
                <li><p:commandLink
                        value="#{contentMB.msg.layout_menu_mm_newMeasures.value}"
                        rendered="#{userSessionMB.measureCreate}"
                        actionListener="#{cleanUpMB.alChangeArea}"
                        action="#{newMeasureControllerMB.aNew}" /></li>
            </ul>
      </li>
   </ul>
</div>
我希望从支持JSF托管bean生成的

。我知道对于Primefaces存在我可以使用的java组件并将它们绑定为模型,但是如何生成纯HTML标记:

<ul>
<div>
...

1 个答案:

答案 0 :(得分:2)

一种简单的方法是从支持bean返回一些HTML:

@Named
@RequestScoped
public class HtmlController implements Serializable {

private static final long serialVersionUID = 1L;

    public String getSomeHtml(){
        return "<h1>Some HTML from a bean</h2>";
    }
}

并将其粘贴到JSF部分:

<h:outputText value="#{htmlController.someHtml}" escape="false" />

但我认为对于你的情况,最好是创建自己的组件,在那里你也可以对支持bean进行一些绑定。可以找到如何执行此操作的一个示例here或查看tutorial of Java EE 6