我用了该标签迭代出记录,现在我想给它加个判断,使它只能迭代出5行数据,该怎么改 <s:iterator value="#request.newslist" status="ne">
    <s:if test="%{typeId==1}">
     <s:a href="detailShow.action?news.id=%{id}"><s:property value="title" /></s:a><br/>
  </s:if>
</s:iterator>

解决方案 »

  1.   

    <s:iterator value="#request.newslist" status="ne">
    <s:if test="#ne.index<5">
    ……
    </s:if>
    </s:if>
      

  2.   

    恩,按楼上的哥们弄了成功了,但我想能不能只用一个if语句就可以了,我用了
    <s:if test="%{typeId==1}&&#ne.index<5">

    <s:if test="%{typeId==1}&&%{#ne.index<5}">
    都不成功,是什么原因导致的
      

  3.   

      可能是typeId==1在前五行数据里面都没有呗!呵呵
      

  4.   

    <s:if test="%{typeId==1&&#ne.index<5}">
      

  5.   

    value中的属性 应该是个 集合 的名字 而不是具体的action吧 比如你action中定义了一个集合private List<Person> per;那你的value属性因该就是per;
      

  6.   


    应该这样写:
    <s:if test="%{typeId==1&&#ne.index<5}">
    ……
    </s:if>
      

  7.   

    <s:if test="${typeId==1 && ne.index < 5}"> 应该可以
      

  8.   

    <s:iterator value="#request.newslist" status="ne1">
    <s:if test="%{typeId==1}">
      <s:if test="#ne1.index<5">
      <tr>
        <td height="24" style="padding-left:15px">
                     
              <s:a href="detailShow.action?news.id=%{id}"><s:property value="title" /></s:a>      
        </td>
      </tr>
      </s:if>
     </s:if>        
    </s:iterator>上面是我听楼上的哥们说的,开始我以为是对的,后来我发现了个问题,这样做的话如果是我数据库里面的数据前5条是属于typeId=1的话,就正常输出5条了,但如果我要是数据库里前几条不都是等于typeId=1的话,输出就错了,即使我里面有超过5条以上的typeId=1的数据,也输不出来啊,请教正确的显示方法