2011-12-06 3 views
2

が、私は「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に渡す必要があるファイル名が含まれているので、私は<ui:repeat>を使用することはできません。

答えて

0

私が正しく理解していれば、カスタムオブジェクト "StartsideElement"内のタイトル <h:outputText value="#{element.tittel}" />は、jsfコードがarrayListを反復処理するときに変更されています。その値が静的であり、変更されないようにしたいとします。

なぜ正しい対応する値を持っているあなたの「StartsideElement」カスタムオブジェクト内の別の属性を作成していませんか?

+0

私は彼が各ループ反復時だけでなく、参照されるたびにバグのように聞こえる「要素」の変更を意味すると思います。しかし、おそらく私は説明を間違って読んでいる。 – toto2

+0

問題は、toto2が要素にアクセスするたびに、要素が変更されたということでした。時間の制約のためにコードを別の方法で構築することで、私の問題を解決しました。 – strandmyr