Проблемы с использованием c: foreach с ui: include - PullRequest
2 голосов
/ 06 декабря 2011

У меня есть массив с пользовательским типом объекта с именем «StartsideElement».

 <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 голосов
/ 06 декабря 2011

Если я правильно понимаю, заголовок <h:outputText value="#{element.tittel}" /> в вашем пользовательском объекте "StartsideElement" меняется, так как код jsf выполняет итерации по вашему arrayList.Вы бы хотели, чтобы это значение оставалось статичным и не менялось.

Почему бы не создать еще один атрибут в пользовательском объекте "StartsideElement", который имеет правильное соответствующее значение?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...