任何人都可以回答为什么这不适用于struts?

时间:2013-09-25 12:43:17

标签: jsp for-loop struts2 scriptlet

Scriptlet variable in div id

我有与上面链接相同的问题但是使用Struts2,当我把代码放在其中时  如下所示,它不起作用。

 <s:form>

        <%!int i, j;%>
        <%
            for (i = 0; i < 5; i++) {
        %>
        <%
            for (j = 0; j < 5; j++) {
        %>
        <div class="One" id="j<%=j%>">
            Hey<%=i%></div>
        <%
            }
        %>
        <%
            }
        %>
    </s:form>

我知道使用scriptlet并不好,但至少应该有效。

1 个答案:

答案 0 :(得分:1)

  1. 避免使用scriptlet
  2. 您的代码将生成具有相同ID的多个元素,这是不允许的。
  3. 解决方案:

    1. 使用Struts Iterator
    2. 将两个变量放在ID中。

    3. <s:form>
          <s:iterator begin="0" end="5" status="i" >
              <s:iterator begin="0" end="5" status="j" >
                  <div id="<s:property value="%{'i' + #i.index + 'j' + #j.index}"> ">
                      Hey <s:property value="%{#i.index}"/> 
                  </div>
              </s:iterator>
          </s:iterator>
      </s:form>
      

      请注意

        

      开始,结束和步骤属性仅适用于2.1.7