2011-12-06 46 views
2

我有一個名爲「StartsideElement」的自定義對象類型的arraylist。使用c:foreach與ui的問題:包括

<c:forEach items="#{startsideClient.brukerelementer}" var="element" begin="0" step="1">       
    <div class="#{element.headerStyle}"> 
    <div> 
    <table width="100%" cellpadding="0" cellspacing="0"> 
    <tr height="25px"> 
     <td width="5px"> 
     <img src="#{facesContext.externalContext.requestContextPath}/resources/gfx/topmenu_lefttop.gif" width="5" height="5" /> 
     <img src="#{facesContext.externalContext.requestContextPath}/resources/gfx/topmenu_left.gif" width="5" height="15" /> 

     <img src="#{facesContext.externalContext.requestContextPath}/resources/gfx/topmenu_leftbottom.gif" width="5" height="5" /> 
     </td> 
     <td background="#{facesContext.externalContext.requestContextPath}/resources/gfx/topmenu_bg.gif" style="width: 920px;"> 
     <img src="#{facesContext.externalContext.requestContextPath}/resources/gfx/Calendar_16x16.png" width="16" height="16" style="float:left; margin-bottom:2px;"/> 
     <div class="headerText" style="text-align:left; position:relative; left: 15px; margin-top:2px"><h:outputText value="#{element.tittel}" /></div> 
     </td> 
     <td width="5px"> 
     <img src="#{facesContext.externalContext.requestContextPath}/resources/gfx/topmenu_righttop.gif" width="5" height="5" /> 

     <img src="#{facesContext.externalContext.requestContextPath}/resources/gfx/topmenu_right.gif" width="5" height="15" /> 
     <img src="#{facesContext.externalContext.requestContextPath}/resources/gfx/topmenu_rightbottom.gif" width="5" height="5" /> 
     </td> 
    </tr> 
    </table> 
    </div> 
    <!-- InnholdsDIV til Kommende oppgaver --> 
    <div class="#{element.boxStyle}" style="clear: both;">   
    <div class="boxDokumenterFont">        
    <ui:include src="#{element.mal}" />  
    </div> 
    </div> 
    </div> 
    <!-- END CONTAINER FOR WIDGET -->    
</c:forEach> 

這裏的問題是,循環c:foreach將循環6次,這是正確的,但元素的值將隨着我使用它而改變。創建的框的標題<h:outputText value="#{element.tittel}" />將不會與正確的值相對應。如果我這樣做:<h:outputText value="#{element.tittel element.tittel}" />element.tittel打印的值將不會相同。

如何做的任何建議都會很好。我無法使用<ui:repeat>,因爲#{element.mal}包含一個我需要傳遞給ui的文件名:include,並且該文件不適用於ui:repeat

回答

0

如果我理解正確,自定義對象「StartsideElement」中的標題 <h:outputText value="#{element.tittel}" />正在改變,因爲jsf代碼遍歷arrayList。你希望這個值保持不變,而不是改變。

爲什麼不在您的「StartsideElement」自定義對象中創建具有正確對應值的另一個屬性?

+0

我認爲他的意思是'元素'不僅在每次循環迭代時都會改變,而且每次都會引用它,這聽起來像是一個錯誤。但也許我錯誤地閱讀了描述。 – toto2

+0

問題在於,每當我訪問元素時元素都會改變爲toto2。由於時間限制,通過另一種方式構建代碼來解決我的問題。 – strandmyr