【问题标题】:struts 2 for loopstruts 2 for 循环
【发布时间】:2012-07-11 14:10:04
【问题描述】:

我不想像这样循环一段代码

<s:iterator value="#session.count">
        <TD WIDTH='10%' BGCOLOR='#000080'>&nbsp;</TD>
    </s:iterator>

基于值'count',存储在会话中,很多时候我需要像上面一样添加标签 但它没有按预期循环。

我想知道的是 用于数组或集合对象。 但 如何在 JSP 中使用 Struts 2 标签循环代码 N 次。

【问题讨论】:

  • count 的值是多少?你打印了吗? mkyong.com/struts2/struts-2-iterator-tag-example
  • 嗨@thinkSteep 感谢您的回复。 count 的值只是 int。在 1 到 100 之间。例如,如果它是 50,我需要循环代码 50 次。我知道在您给出的链接中的示例中迭代 List 对象。

标签: jsp struts2 tags iterator


【解决方案1】:

对于一个简单的 for 循环,使用 beginend 属性:

<s:iterator begin="0" end="%{#session.count}">
  <td width='10%' bgcolor='#000080'>&nbsp;</td>
</s:iterator>

我也会更好地使用 CSS。

请参阅iterator tag docs


现在您提到您使用的是非常旧的 S2 版本。在这种情况下,使用JSTL's c:forEach tag,没有理由使用 S2 标签。它具有相同的开始/结束语义,并且仍然比创建一个无用的列表更有意义。

【讨论】:

  • begin、end 和 step 属性仅从 2.1.7 开始可用。我使用的是 Struts 2.0.11。
  • @MadhuB 这种信息是您想在问题中提出的内容,尤其是,因为它是旧版本。您确实不需要在生产中使用该版本。不升级,尤其是在存在安全问题时,是个坏主意。
【解决方案2】:

看起来很简单。

使用这个:

<s:subset source="your_source" count="#session.count">
    <s:iterator>
        <td>test</td>
    </s:iterator>
</s:subset>

【讨论】:

  • 如果 'your_source' 是 int.?像平面 java.. for(int i=0;i
  • @MadhuB 接受这个答案是没有意义的,因为你没有来源,只想重复n 次。仅当您的集合至少包含 n 条目时,才会这样做。
【解决方案3】:

您可以查看iterator 示例herehere

【讨论】:

  • 找不到页面的链接!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-30
  • 2018-11-26
  • 2018-08-15
相关资源
最近更新 更多