1

我的第二个迭代器有语法问题。我想迭代的值equipesParties但是,我似乎找不到正确的语法。

这是导致问题的标签: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>
4

2 回答 2

1

正确的语法是equipesParties[%{#cpt.index}].

于 2013-06-21T07:59:30.597 回答
1

正确的语法是equipesParties[%{#cpt.index}],但我会退一步告诉您,没有必要使用迭代器来构建选择框。只需使用 Struts2 提供的 Select Tag。

你的(现在工作的)代码(2 s:if, 2 s:property, 1 iterator)

<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/>以完全隐藏它。

于 2013-06-21T09:40:27.967 回答