2013-06-20 102 views
1

我的第二個迭代器有一個語法問題。我想迭代equipesParties的值,但是,我似乎無法找到正確的語法。JSP迭代器語法,另一個迭代器

這是造成問題的標籤:value="{equipesParties[#cpt.count()]}"

<s:iterator value="equipes" var="equipe" id="equipe" status="cpt"> 
    <div style="height: 30px; vertical-align: middle;"> 
     <input type="checkbox" class="rEquipe" name="equipe" value="<s:property value='#equipe.id' />" id="equipe_<s:property value='#equipe.id' />" <s:if test='gallery.equipe.id == #equipe.id'>checked="checked"</s:if> /> 
     <label style="float: none; display: inline; padding-top: 0;" for="equipe_<s:property value='#equipe.id' />"><s:property value='#equipe.name' /></label> 

    </div> 

    <div id="galerie_partieBox" <s:if test='gallery == null || gallery.partie == null'>style="display: none;"</s:if> >  
     <select style="float: none; margin: 0 0 0 30px;" name="partie" id="select_partie"> 
     <s:if test='parties != null'> 
      <s:iterator value="{equipesParties[#cpt.count()]}" var="partie"> 
      <option <s:if test='#partie.id == gallery.partie.id'>selected="selected"</s:if> value="<s:property value='#partie.id' />"><s:property value="#partie.gameName" /></option> 
      </s:iterator> 
     </s:if> 
     </select> 
    </div> 
</s:iterator> 
+0

你有什麼錯誤嗎?或者它現在只按預期工作? – MaQy

+0

顯示你的數據結構。 –

回答

1

正確的語法是equipesParties[%{#cpt.index}],但我會退後一秒告訴你,不需要使用迭代器來構建選擇框。只需使用Struts2提供的選擇標籤即可。

你的(工作中)的代碼(2個S:如果,2個S:屬性,1次迭代)

<select style="float: none;margin: 0 0 0 30px;" name="partie" id="select_partie"> 
    <s:if test='parties != null'> 
     <s:iterator value="equipesParties[%{#cpt.index}]" var="partie"> 
      <option <s:if test='#partie.id == gallery.partie.id'> 
         selected="selected" 
        </s:if> 
        value="<s:property value='#partie.id' />"> 
       <s:property value="#partie.gameName" /> 
      </option> 
     </s:iterator> 
    </s:if> 
</select> 

可以通過這種簡單的標籤來代替,與相同結果

<s:select cssStyle = "float: none; margin: 0 0 0 30px;" 
      name  = "partie" 
      id  = "select_partie" 
      value  = "gallery.partie.id" 
      list  = "equipesParties[%{#cpt.index}]" 
      listKey = "id" 
      listValue = "gameName" 
/> 

我省略了你的<s:if test='parties != null'>,因爲它是無效的;一個選擇框必須至少有一個選項元素。

如果需要,將<s:if>置於<s:select/>之外以完全隱藏它。

+1

謝謝你,非常有幫助! – CharleyXIV

1

正確的語法是equipesParties[%{#cpt.index}]