java - JSP迭代器语法,另一个迭代器

标签 java jsp struts2 iterator ognl

我的第二个迭代器有语法问题。我想迭代 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>

最佳答案

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

您的(正在运行的)代码(2 s:if、2 s:property、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/>如果需要的话,完全隐藏它。

关于java - JSP迭代器语法,另一个迭代器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17224037/

相关文章:

java - struts 形式的多 Action

java - 我如何解释下面提到的 UTF-8 范围

java - 在 Java 中只处理小时和分钟的最佳方法

java - 在 Selenium webdriver 中跳过 SVG 条形图上的元素

java - 如何使用 IntelliJ Idea 15 调试 JSP 文件(断点不起作用)

java - 无法将jsonarray导入到eclipse中的jsp中

java - Struts 2(版本 2.3.28)只接受注册语言环境

struts2 - Liferay - Struts2 Portlet 示例

java - 如何在 Flink 中用 Java 将 AvroFile 读入 Tuple 类

java - 在 JSTL/EL 中如何获取集合中的第一个元素?