请教一个Struts下的显示问题,谢谢

04-05-28 tooko
Action传递一个List给JSP,

如果将这个list规定为每显示5个就自动换行呢?

该用什么标签呢?

刚学不久,查了很多网站教程也没有这方面的资料,

请各位指点一下,不胜感激。

banq
2004-05-28 09:30
使用logic:Iterator,其中有一个大概是Id的属性,根据这个值,判断如果为5表示,当前遍历到list的第5个了。

seaman0916
2004-05-29 11:23
感觉不能理解

楼主搞定没有?

hahafo
2004-05-31 09:54
4.2.2 重复标记

在逻辑标记库中定义了<logic:iterate>标记,它能够根据特定集合中元素的数目对标记体的内容进行重复的检查。集合的类型可以是java.util.Iterator,java.util.Collection

,java.util.Map或是一个数组。有三种方法可以定义这个集合:

 使用运行时间表达式来返回一个属性集合的集合

 将集合定义为bean,并且使用name属性指定存储属性的名称。

 使用name属性定义一个bean,并且使用property属性定义一个返回集合的bean属性。

当前元素的集合会被定义为一个页作用域的bean。属性如下,所有这些属性都能使用运行时表达式。

属性 描述

collection 如果没有设置name属性,它就指定了要进行重复的集合

Id 页作用域bean和脚本变量的名称,它保存着集合中当前元素的句柄

indexed 页作用域JSP bean的名称,它包含着每次重复完成后集合的当前索引

Length 重复的最大次数

Name 作为集合的bean的名称,或是一个bean名称,它由property属性定义的属性,是个集合

Offset 重复开始位置的索引

property 作为集合的Bean属性的名称

Scope 如果指定了bean名称,这个属性设置bean的作用域。若没有设置,搜索范围从页到应用程序作用域

Type 为当前定义的页作用域bean的类型

例如:

<logic:iterate id=”currentInt”

collection=”<% =myList %>”

type=”java.lang.Integer”

offset=”1”

length=”2”>

<% =currentint %>

</logic:iterate>

代码将从列表中的第一个元素开始重复两个元素并且能够让当前元素作为页作用域和java.lang.Integer类型的脚本变量来使用。也就是说,如果myList包含元素1,2,3,4等,代码将会打印1和2。

。。。。。。。。。。注意length这个属性。。。。。。。。。然后再外套循环

tooko
2004-06-03 13:26
谢谢各位!

本人水平太菜,回去用logic标签没有能够解决此问题。:~0

最后翻到一些JSTL的资料。

于是用<c:forEach>循环输出List

用<c:if>判断<c:set>的i,逢i%5=0便</tr>

暂时解决了格式输出的问题。

但总觉得jsp里加这么多的标签(和直接写jsp语句差不多了),实在有违struts的精神。

各位还有没有其他更合理的方法给指点一下。

猜你喜欢
2Go 1 2 下一页