怎么在前台循环显示后台list中的结果

时间:2022-11-01 22:28:28
我在后台的Action中用request保存了一个list对象,现在想在跳转的页面中循环显示出来,要求每行显示list中的3条记录,
如:list中有9条记录,那么在前台就要显示3行,每行3条。请问有什么办法没,系统用到了struts1.2

18 个解决方案

#1


用标签啊
    <logic:iterate id="list" name="list">
<% 判断List.size()能整除3就换行%>
         <bean:write name="name"/>
     </logic:iterate>

#2


前台用Logic标签迭代出来
注意在循环中控制下逻辑

#3


用struts的标签,或者在jsp中用java脚本也行,不过不推荐。

#4


换行怎么换呢

#5


引用 4 楼 dailipk 的回复:
换行怎么换呢

加个<br>不就行了

#6


oh my god

#7



你可以使用JSTL标签库来循环便利,但是需要注意的是为了满足你的每行三条记录的要求,就需要设置两个属性参数。
一个是开始数;另一个是步长。
应该说很轻松的就可以实现你的需求。但是你还是应该去理解它的运行机制,以便更高程度的提升 !

很乐意能够帮助你 !

#8


JSTL 可以实现啊  <c:forEach>

用<c:choose>  <c:when>  <c:otherwise> 来判断每行显示list中的3条记录

#9


如果list保存的是POJO对象的话,按一楼的那样

 <logic:iterate id="这个名字可以随便取(list吧)" name="直接写request保存的key">  
        <bean:write name="与迭代标签的id相同(list)" property="POJO的属性名1" /> 
        <bean:write name="与迭代标签的id相同(list)" property="POJO的属性名2" /> 
        <bean:write name="与迭代标签的id相同(list)" property="POJO的属性名3" /> 

    </logic:iterate> 
如果list保存的不是POJO对象
   <logic:iterate id="这个名字可以随便取(list)" name="直接写request保存的key" offset="0"    length="3">  
        <bean:write name="与迭代标签的id相同(list)"  /> 
            </logic:iterate> 
这样试试

#10


用table的话,换行可以没输出三条记录生成一个</tr><tr>,前面用来结束上一个tr,下面用来开始下面一个,到达最后一次显示是,只输出</tr>,也可以不处理,浏览器的容错性还是不错的

#11


引用 4 楼 dailipk 的回复:
换行怎么换呢

看看struts的分页

#12


Struts里有自带的换行 如果你觉得不行的话用IF语句判断下也可以 不过貌似跟分页没啥关系吧? 我给你查下STRUTS
ITERATOR的标签 里面有那个属性

#13


找不到不知道那个例子扔到哪了。。- -...

#14


引用 9 楼 zhoushaolan 的回复:
如果list保存的是POJO对象的话,按一楼的那样 

<logic:iterate id="这个名字可以随便取(list吧)" name="直接写request保存的key">  
        <bean:write name="与迭代标签的id相同(list)" property="POJO的属性名1" /> 
        <bean:write name="与迭代标签的id相同(list)" property="POJO的属性名2" /> 
        <bean:write name="与迭代标签的id相同(list)" property="POJO的属性名3" /> 

    </logic:iterate> 

up

#15


OH 看来我会的东西还不少了。。加油

#16


解决了,是用struts的循环标签,然后加个逻辑判断完成的!

#17


<c:forEach var="item" items="${list}" varStatus="status">
  <c:if ${(status.index)%3==0}>
  <tr>
  </c:if>
    <td><c:out value="${}"/></td>
  <c:if ${(status.index+1)%3==0}>
  </tr>
  </c:if>
</c:forEach>意思大概是这个意思,我没测试可能不对。你自己测试一下吧

#18


引用 16 楼  的回复:
解决了,是用struts的循环标签,然后加个逻辑判断完成的!



哥们能贴出你的代码看看么  我也遇到这样的问题了

#1


用标签啊
    <logic:iterate id="list" name="list">
<% 判断List.size()能整除3就换行%>
         <bean:write name="name"/>
     </logic:iterate>

#2


前台用Logic标签迭代出来
注意在循环中控制下逻辑

#3


用struts的标签,或者在jsp中用java脚本也行,不过不推荐。

#4


换行怎么换呢

#5


引用 4 楼 dailipk 的回复:
换行怎么换呢

加个<br>不就行了

#6


oh my god

#7



你可以使用JSTL标签库来循环便利,但是需要注意的是为了满足你的每行三条记录的要求,就需要设置两个属性参数。
一个是开始数;另一个是步长。
应该说很轻松的就可以实现你的需求。但是你还是应该去理解它的运行机制,以便更高程度的提升 !

很乐意能够帮助你 !

#8


JSTL 可以实现啊  <c:forEach>

用<c:choose>  <c:when>  <c:otherwise> 来判断每行显示list中的3条记录

#9


如果list保存的是POJO对象的话,按一楼的那样

 <logic:iterate id="这个名字可以随便取(list吧)" name="直接写request保存的key">  
        <bean:write name="与迭代标签的id相同(list)" property="POJO的属性名1" /> 
        <bean:write name="与迭代标签的id相同(list)" property="POJO的属性名2" /> 
        <bean:write name="与迭代标签的id相同(list)" property="POJO的属性名3" /> 

    </logic:iterate> 
如果list保存的不是POJO对象
   <logic:iterate id="这个名字可以随便取(list)" name="直接写request保存的key" offset="0"    length="3">  
        <bean:write name="与迭代标签的id相同(list)"  /> 
            </logic:iterate> 
这样试试

#10


用table的话,换行可以没输出三条记录生成一个</tr><tr>,前面用来结束上一个tr,下面用来开始下面一个,到达最后一次显示是,只输出</tr>,也可以不处理,浏览器的容错性还是不错的

#11


引用 4 楼 dailipk 的回复:
换行怎么换呢

看看struts的分页

#12


Struts里有自带的换行 如果你觉得不行的话用IF语句判断下也可以 不过貌似跟分页没啥关系吧? 我给你查下STRUTS
ITERATOR的标签 里面有那个属性

#13


找不到不知道那个例子扔到哪了。。- -...

#14


引用 9 楼 zhoushaolan 的回复:
如果list保存的是POJO对象的话,按一楼的那样 

<logic:iterate id="这个名字可以随便取(list吧)" name="直接写request保存的key">  
        <bean:write name="与迭代标签的id相同(list)" property="POJO的属性名1" /> 
        <bean:write name="与迭代标签的id相同(list)" property="POJO的属性名2" /> 
        <bean:write name="与迭代标签的id相同(list)" property="POJO的属性名3" /> 

    </logic:iterate> 

up

#15


OH 看来我会的东西还不少了。。加油

#16


解决了,是用struts的循环标签,然后加个逻辑判断完成的!

#17


<c:forEach var="item" items="${list}" varStatus="status">
  <c:if ${(status.index)%3==0}>
  <tr>
  </c:if>
    <td><c:out value="${}"/></td>
  <c:if ${(status.index+1)%3==0}>
  </tr>
  </c:if>
</c:forEach>意思大概是这个意思,我没测试可能不对。你自己测试一下吧

#18


引用 16 楼  的回复:
解决了,是用struts的循环标签,然后加个逻辑判断完成的!



哥们能贴出你的代码看看么  我也遇到这样的问题了