我正在尝试将Struts if
标记与迭代器一起使用,但它无效。
这是
<s:iterator status="i" value="pages" >
<s:set var="kk" value="<s:property />" />
<s:if test="%{(#kk<5)}">
Hello
</s:if><s:else>
Hi
</s:else>
</s:iterator>
pages
列表是整数列表。
如果Hello
值小于5,则上述代码应打印pages
,但对于pages
的所有值,请打印该代码。
答案 0 :(得分:3)
OGNL,jstl等有很多选项,它可能成为检索值的噩梦。试试这个,我认为在下面的例子中%{}
不是强制性的
<s:iterator id="page" value="pages">
<s:if test="#page < 5">Hello</s:if> <!-- or <s:if test="%{#page < 5}"> -->
<s:else>Hi</s:else>
</s:iterator>
答案 1 :(得分:1)
应该使用
<s:set name="kk" value="0" />
而不是
<s:set var="kk" value="<s:property />" />
并且您不应在struts标记
的属性中使用<s:
标记
<s:set name="kk" value="0"/>
<s:iterator status="i" value="bloglist" >
<s:set name="kk" value="%{#kk+1}" />
<s:if test="%{(#kk<2)}">
Hello<br>
</s:if>
<s:else>
Hi<br>
</s:else>
</s:iterator>
答案 2 :(得分:0)
您甚至不需要使用<s:set>
。
充分利用Iterator
权力:
<s:iterator var="itr" status="ctr" value="pages" >
<s:if test="%{itr[#ctr] < 5}">
Hello
</s:if><s:else>
Hi
</s:else>
</s:iterator>