struts2 ognl中计数器的使用

struts2随提供了循环控制标签<s:iterator/>,使用起来也比较方便,但在具体的应用中,也有不方便之处,他没有像struts1的<c:foreach/>标签,提供了begin、end等属性,支持自增变量的循环。遇到这种问题怎么解决?struts2提供了<s:bean/>标签,且提供了一个bean类:org.apache.struts2.util.Counter,该类中有first、last等属性,可用使用它获取自增值,如下:

<s:bean name="org.apache.struts2.util.Counter"id="counter">
<s:param name="first" value="1"/>
<s:param name="last" value="10"/>
<s:iterator>
<s:property/>
</s:iterator>
</s:bean>

其中first属性指定循环起始值,last指定循环终止值,其它相关属性可以查看org.apache.struts2.util.Counter类源码。在下面迭代器中输入循环的当前值,即:current-1

 
例1:分页中,select自增计数的控制
<select name="page"
οnchange="javascript:window.location='newslist.jsp?page='+this.value">
<s:beanname="org.apache.struts2.util.Counter">
<s:param name="first" value="1"/>
<s:param name="last" value="pageCount"/>
<s:iterator>
<option value="<s:property/>"
<s:iftest="%{page==(current-1)}">selected</s:if> >
<s:property />
</option>
</s:iterator>
</s:bean>
</select>


例2:
<s:bean name="org.apache.struts2.util.Counter"id="counter">
 

  <s:param name="first"value="1"></s:param>
   <s:param name="last"value="question.number"></s:param>
    <s:iterator>
     <tr>
        <td width="30%" bgcolor="#e6ecf9"align="right">
             选项&nbsp;<s:property/>
          </td>
           <td>
    <s:textfield name="question.items" cssClass="test"size="70%"bgcolor="#e6ecf9"></s:textfield>
               </td>
            </tr>
      </s:iterator>
</s:bean>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值