3

我正在尝试将 Strutsif标记与迭代器一起使用,但它不起作用。

这是此的代码:

<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如果pagesvalue 小于 5,则上面的代码应该打印,但对于pages.

4

3 回答 3

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>
于 2013-01-19T08:24:14.027 回答
1

应该使用

<s:set name="kk"  value="0" />

代替

<s:set var="kk"  value="<s:property />" />

你不应该<s:在struts标签的属性中使用标签

<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>
于 2013-01-19T09:04:53.257 回答
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>
于 2013-01-19T14:35:23.227 回答