2016-08-24 42 views
0

我有一個代碼XHTML:C:的forEach在號碼:accordionPanel VAR作爲參數

... 
<p:accordionPanel var="mVar" value="#{someBean.someList}" > 
    <p:tab> 
     <f:facet name="title"> 
      <h:outputText value="#{mVar.id} - #{mVar.name}"/> 
      ... 
     </f:facet> 
     <h:panelGrid> 
      ... 
      <c:forEach items="#{someBean.someFunctionReturningList(mVar.id)}" var="mImg"> 
       <h:outputText value="#{mImg}"/> 
      </c:forEach> 
     </h:panelGrid> 
    </p:tab> 
</p:accordionPanel> 
... 

和Java代碼:當產品與對一個功能accordionPanel不工作

public List<String> listAllImagesForCampaign(BigInteger id) { 
    List<String> allImages = new ArrayList<String>(); 
    ... 
    return allImages; 
} 

而且問題是,例如,當mVar.id爲64時,BigInteger id包含值0。 是否有一個錯誤,我不能捕捉或與黃斑面組件錯誤?

+1

的可能的複製[在JSF2 Facelets的JSTL ......有道理?](http://stackoverflow.com/questions/3342984/jstl-in-jsf2-facelets-makes-sense) – Kukeltje

回答

0

更改c:forEach到ui:重複解決問題。

<ui:repeat value="#{someBean.someFunctionReturningList(mVar.id)}" var="mImg"> 
+0

那是因爲C :forEach是一個TagHandler,並在p:accordionPanel之前進行處理。雖然p:accordionPanel和ui:repeat是組件。 https://rogerkeays.com/jsf-c-foreach-vs-ui-repeat – tak3shi

+0

看到'重複'... – Kukeltje