2012-05-04 118 views
0

我有一個帶有兩個commandlink按鈕和兩個outputpanel的.xhtml。一切都在相同的形式。當我點擊commandlink時,爲什麼我需要明確地說出哪些輸出面板需要渲染?如果沒有指定,不應該根據規範(或)中的以下描述重新構建整個視圖我是否在混合事物?JSF/Facelets ajax視圖呈現問題

我們真的需要設置action="navigation-rule"當我們想在同一視圖中刷新一個組件嗎?

Link controls are typically used to perform complete form submissions for data storing. 
As a consequence, the <a4j:commandLink> component has the execute="@form" setting by default. 

任何輸入,非常感謝。

下面是參考代碼:

<h:form> 
     <div> 
      <a4j:outputPanel layout="block"> 
       <!--Tab1 --> 
       <a4j:commandLink 
        id="homeTabLinkId" 
        value="Tab1" 
        actionListener="somelistener" render="contentDIVId"> 
        <h:outputText value=""/> 
       </a4j:commandLink> 
       <!--Hosts Tab --> 
       <a4j:commandLink 
        id="hostsTabLinkId" 
        value="Tab2" 
        actionListener="anotherlistener" render="contentDIVId"> 
        <h:outputText value=""/> 
       </a4j:commandLink> 


      </a4j:outputPanel> 
     </div> 

     <a4j:outputPanel layout="block" id="contentDIVId"> 
      <!-- dynamically gets src based on tab click --> 
      <ui:include id="tabBodyPanel" src="elexpression"/> 
     </a4j:outputPanel> 

     <a4j:outputPanel layout="block" id="anotherdiv"> 
      <h:outputText value="Inside second div"/> 
     </a4j:outputPanel> 

    </h:form> 

回答

3

如果未指定,不應整個視圖基於從規格以下描述再構成(或)AM我混合東西?

這隻適用於同步請求。將<a4j:commandLink>替換爲<h:commandLink>,您將看到描述的行爲。


除了我們真的需要設置的行動=「導航規則」當我們要刷新相同看法的成分?

號的操作方法可以只返回nullvoid。否則,視圖將被重新創建,如果您已經在視圖上查看有限範圍的bean,那麼這不是您想要的。

+0

嗨BalusC:一些如何a4j:commandlink在說明中的描述使我困惑。另一個,如果我們有請求範圍的bean,那麼我們是否需要在組件中指定action = navigation-rule-id? – kosa

+0

不,「null」或「void」結果默認爲當前視圖。與請求範圍的bean的區別在於,它們只是在每個請求上重新創建。 – BalusC

+0

太棒了!感謝您的時間。 – kosa