1

私は次のコードを持っています:

<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>
...

4

1 に答える 1

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にバインドすることもできます。その方法の1つの例は、ここにあるか、JavaEE6のチュートリアルを参照してください。

于 2012-09-07T07:20:51.857 に答える