Struts如果标签不起作用

时间:2013-01-19 07:50:59

标签: java jsp struts2 jsp-tags ognl

我正在尝试将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的所有值,请打印该代码。

3 个答案:

答案 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>