2012-05-04 8 views
2

私はprimefaces 3.1を使用しています。 西の位置(西)にツリーメニューを追加しました。 JSFのコードは、私がPrimefacesのページレイアウトとナビゲーションとしてのツリーメニュー

root = new DefaultTreeNode("Root", null); 
     TreeNode node0 = new DefaultTreeNode("Color", root); 


     TreeNode node00 = new DefaultTreeNode("Red", node0); 
     TreeNode node01 = new DefaultTreeNode("Blue", node0); 
     TreeNode node02 = new DefaultTreeNode("Green", node0); 

は、私は、JSFページを表示することができるか、それが可能に私が展開するとナビゲーションを持っており、これらのノードのいずれかをクリックすることであり、それぞれのノードをクリックすると、持っている

<p:layoutUnit position="west" size="200" header="Left" 
      resizable="true" collapsible="true"> 
      <h:form> 
       <p:tree dynamic="true" value="#{treeBean.root}" var="node" id="tree" 
        selectionMode="single"> 
        <p:treeNode id="treeNode"> 
         <h:outputText value="#{node}" id="lblNode" /> 
        </p:treeNode> 
       </p:tree> 
      </h:form> 
     </p:layoutUnit> 

とTreeBeanにたどりますレイアウトの中心位置に配置します。つまりノードBlueをクリックすると、理想的には別のjsfページをレイアウトの中心位置にロードすることができます。

助けを借りると非常に感謝します。

おかげで、私は、次のコードを追加しているし、それはナビゲーションがstart.xhtmlしない1

更新。しかし、start.xhtmlはレイアウト内に表示されず、start.xhtmlは新しいページとして表示されます。

public void onNodeSelect(NodeSelectEvent event) { 

     try { 
      System.out.println(" here " + event.getTreeNode().getData()); 
      FacesContext 
        .getCurrentInstance() 
        .getApplication() 
        .getNavigationHandler() 
        .handleNavigation(FacesContext.getCurrentInstance(), 
          "null", "/start.xhtml?faces-redirect=true"); 
     } catch (Exception e) { 
      logger.info("error "+e.getMessage()); 
      // TODO: handle exception 
     } 

答えて

1

私はこのポストはそれは方法について説明しますInclude one xhtml inside another JSF

のために非常に有用であろうと思いますテンプレートを作成してtemplate clientに使用します。既にあなたに言われましたが、実際には<p:layout>を使用する必要はありません。上にリンクされた記事はもっと正確です。私はあなたがそこに必要なものを見つけると信じています。よろしくお願いいたします。

2

これはレイアウトの助けを借りて達成されます。アプリケーションのレイアウトテンプレートを定義します。サンプルは

myLayoutTemplate.xhtml

あなたのメニュー項目のクリック時にロードするあなたのPage.xhtmlで
 <p:layout> 
     <p:layoutUnit position="east" header="Menu" collapsed="true" scrollable="true" collapsible="true" > 
      <ui:insert name="appMenu"> 
       Place Your menu here ... 
      </ui:insert> 
     </p:layoutUnit> 

     <p:layoutUnit position="center" scrollable="true"> 
      <ui:insert name="pageContent"> 
       Page Content is loaded here ..... 
      </ui:insert> 
     </p:layoutUnit> 
    </p:layout> 

、..... ...ここに示されている

<ui:composition template="myLayoutTemplate.xhtml"> 
    <ui:define name="pageContent"> 

    </ui:define> 
</ui:composition> 
+0

これを達成する他の方法はありますか? – user75ponic

+0

助けてくれてありがとう、私はこれを試してみる。 – user75ponic