java - Struts 2 中的 For 循环问题

标签 java jsp struts2 ognl

我在 JSP 中的某处发现了以下代码。

  <%
    int cnt =1;
    for(int i=1;i<=iTotalweeks;i++)
    {
    %>
    <tr>
      <% 
        for(int j=1;j<=7;j++)
        {
            if(cnt<weekStartDay || (cnt-weekStartDay+1)>days)
            {
             %>
            <td align="center" height="35">&nbsp;</td>
           <% 
            }
            else
            {
             %>
            <td align="center" height="35" id="day_<%=(cnt-weekStartDay+1)%>"><span><%=(cnt-weekStartDay+1)%></span></td>
           <% 
            }
            cnt++;
          }
        %>
    </tr>
    <% 
    }
    %>

现在我在 Struts2 中做同样的事情。但我陷入了编码的困境。如何将当前 JSP 变量 cnt 与操作类的变量进行比较。

 <s:set var="cnt" value="1" />
    <s:iterator begin="1" end="%{iTotalweeks}">
    <tr>
        <s:iterator begin="1" end="7">

            <s:if test='%{cnt<weekStartDay || (cnt-weekStartDay+1)>days}'>        
            <td align="center" height="35">&nbsp;</td>
           </s:if>
           <s:else>
            <td align="center" height="35"><s:property value="${(cnt-weekStartDay+1)}" /><s:property value="${1}" /></td>
            </s:else>
          <s:set var="cnt" value="${cnt + 1}"/>
          </s:iterator>
    </tr>
    </s:iterator>

在上面的代码中weekStartDay,days和iTotalweeks是action类中的变量,cnt是当前JSP中的变量。

 public int getDays() {
    return days;
}

public int getWeekStartDay() {
    return weekStartDay;
}

public int getITotalweeks() {
    return iTotalweeks;
}

最佳答案

s:if 标记 test 属性中不要使用 %{}

<s:set var="cnt" value="1" />
<s:iterator begin="1" end="%{iTotalweeks}">
<tr>
  <s:iterator begin="1" end="7">
    <s:if test='#cnt<weekStartDay || #cnt-weekStartDay+1>days'>        
    <td align="center" height="35">&nbsp;</td>
   </s:if>
   <s:else>
    <td align="center" height="35"id="day_<s:property value='%{#cnt-weekStartDay+1}'/>"><span><s:property value='%{#cnt-weekStartDay+1}'/></span></td>
    </s:else>
  </s:iterator>
  <s:set var="cnt" value="%{#cnt + 1}"/>
</tr>
</s:iterator>

关于java - Struts 2 中的 For 循环问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30614610/

相关文章:

java - 如何在Unix中用java执行sql脚本文件

java - 有哪些可用的 Log4j 替代日志库?

java - 在 android 中使用 commons-lang NameValuePair

java - 在整个 Spring MVC/JSP 应用程序中显示导航栏

javascript - 如何使用jquery计算一个文本框的值并将其设置到另一个文本框

java - 子列表内使用 HashMap 进行映射

spring - 如何将值从 JSP 传递到图 block 属性?

java - 从jsp创建xml文件时出错

java - 拦截器出错时如何将控件从拦截器重定向到jsp

java - Struts2 anchor 标记不包含 contextPath