使用c:foreach与ui:include的问题

时间:2011-12-06 13:51:13

标签: java jsf

我有一个名为“StartsideElement”的自定义对象类型的arraylist。

 <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一起使用。

1 个答案:

答案 0 :(得分:0)

如果我理解正确,标题      自定义对象“StartsideElement”中的<h:outputText value="#{element.tittel}" />正在改变,因为jsf代码会在您的arrayList上进行迭代。您希望该值保持静态而不是更改。

为什么不在“StartsideElement”自定义对象中创建具有正确对应值的另一个属性?