您的位置:首页 > 编程语言 > Java开发

<s:if>标签判断<s:iterator>模拟循环的当前迭代值

2012-10-10 15:19 369 查看
前面用 struts2 的 迭代循环标签模拟出了for循环控制的效果,并且效果不错。

这里又出了点问题,iterator迭代的当前值是<s:property/>,比如我们如果要实现 判断循环的时候,当迭代数字等于当前页面的话,就停止下来。

这个该怎么写呢?

<s:if test="#request.pager.nowpage == <s:property />"></s:if> 这样写吗? 不对!

<s:if test="<s:property value="pager.nowpage"/> == <s:property/>"></s:if> 这样也不对!

通过尝试,发现 虽然 模拟 for循环 这是 <s:iterator>标签的一种t特殊写法,但是他始终还是保留了<s:iterator>的特性,比如id值为当前迭代对象等。

因此 我们可以这样实现,给<s:iterator>设置一个id属性,然后这样判断:

<s:if test="#request.pager.nowpage ==#id"></s:if> 这样就对啦!

下面是模拟实现  的全部代码

<s:bean name= "org.apache.struts2.util.Counter"  id= "counter" >
<s:param name="first"  value= "1"  />
<s:param name="last"  value= "6"  />
<!--设置id属性-->
<s:iterator id="test">
<s:if test="#test == #request.pager.nowpage">
<span>checked</span>
</s:if>
<s:else>
<s:property/>
</s:else>

</s:iterator>
</s:bean>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  iterator struts bean