2011-07-08 77 views
0

我在JSF2渲染操作中遇到了很大的問題。我使用一個簡單的c:forEach遍歷列表。這個清單有itens,這些清單有更多的Itens清單。所以它是一個嵌套的c:forEach。子列表中有一個輸入字段,一旦保存,必須進入bean,保存這個新輸入,然後返回到帶有更新列表的屏幕。 沒有什麼複雜的事情要做。當我調試發送列表回到視圖的方法時,我看到所有的信息都是正確的。 所以,我們來解決這個問題:第一次commandButton工作正常。但是,如果我嘗試單擊列表中的另一個按鈕刷新後,該按鈕不會調用我的方法。最奇怪的是,這個動作確實將它發送給了bean(它通過我的@PostConstruct方法),但並沒有調用我想要的方法。commandButton不會調用bean操作方法

代碼:

<c:forEach var="pub" items="${publicacaoCidadeController.listaPublicacao}" varStatus="status"> 
     <div>message from first list : ${status.count} <br/> 
      <h:outputLabel value="#{pub.publicacao.mensagem}" /> 
      <br/><br/>message from second list :<br/> 
      <h:form> 
      <f:ajax event="action" execute="@form" render="@all"> 
      <c:forEach id="test2" var="com" items="#{pub.publicacao.comentarioList}" >         
       <div> 
       <h:outputLabel value="#{com.mensagem}" /> 
       </div>         
      </c:forEach> 
      <div> 
      <h:inputTextarea value="#{publicacaoCidadeController.msgComentarioNovo}" /> 
      <div >          
        <h:commandButton type="submit" value="Postar" action="#{publicacaoCidadeController.salvarComentario}" > 
         <f:param name="codPublicacao" value="#{pub.publicacao.codPublicacao}"/> 
         <f:param name="postNum" value="${status.count}"/> 
        </h:commandButton> 
       </div>          
       </div> 
       </f:ajax> 
       </h:form>    
      </div> 
    </c:forEach> 

任何想法的傢伙?

回答

0

嘗試使用ui:repeat標記。 c:foreach是一個構建視圖標記,ui:repeat是一個渲染標記。 按命令按鈕的JSF樹不重建......

如果包括ui:debug標籤,你可以諮詢去JSF樹和調查發生了什麼事....

+0

喜後,只是爲了讓你知道,你可以使用反引號(''')來突出顯示部分文本爲'code',這通常會使問題更容易閱讀。 – Kzqai

相關問題