转载 struts标签之logic手册
上一篇 / 下一篇 2007-06-01 00:00:00 / 个人分类:java
logic:iterate
7X(_2]n Ij5X0logic:iterate标签用来迭代集合,您可以使用如下方式来为这个标签指定其要叠代的集合:ITPUB个人空间wr@$j@nDM
使用一个运行时表达式,这个表达式的值是一个集合。 用name属性引用一个JSP Bean,这个JSP Bean本身就是一个集合。 用name属性引用一个JSP Bean,这个JSP Bean的一个属性是一个集合,这时可以联合使用property来指定这个集合。 上面所提到的集合可以是:
6rS,lx`n0对象类型或原子类型的数组(Array)。 ITPUB个人空间 x2cE0O t"Fp
java.util.Collection的实现,包括ArrayList,Vector。
tE lj!|;\T0java.util.Enumeration的实现。
4[lqn o0java.util.Iterator的实现。 ITPUB个人空间.[u?iI5YC$}'d4n
java.util.Map的实现,包括HashMap,Hashtable和TreeMap。 如果您叠代的集合中含有null的值,这时需要采取一定的措施,因为这时logic:iterate不会在page作用域中创建对象。一般是使用<logic:present>标签或<logic:notPresent>标签来判断一下。
]#[[a&XO0下面是logic:iterate叠代ArrayList的示例的对象引用关系和部分代码:ITPUB个人空间4_"U&X*M(G2`~ES
|2{7l3M:Q;b4X vSP0图示 3. logic:iterate中对象的引用关系ITPUB个人空间1RA!IJ2} h)d{S
图中的persons列表是在ListAction中填充的,在这里只是简单的加入了三个Person对象,在实际的应用中这些数据应该取自数据库。具体的代码如下:
GW"_}C;J0
/l4q*P2m"PK0public ActionForward execute(ActionMapping mapping,ActionForm form,ITPUB个人空间/D4@RE%D:k6B*N5J
HttpServletRequest request, HttpServletResponse response) {
?qf(A
E&^g/F/f0ITPUB个人空间
P+VR8J,LEm
ListForm listForm = (ListForm) form;ITPUB个人空间vC-A)e
TZ
lJM\l,X!}?v~cW0 List<Person> persons = new ArrayList<Person>();
0S^"z1J,F0
'iH
ir}+U!b0 Person person1 = new Person();ITPUB个人空间 _ m j Mi9lH
person1.setId("00001");
|;B#A,r-{%Re%Ab0 person1.setName("赵辰");ITPUB个人空间G8w$],fpR#hEF
v/iD/\5m7V0 Person person2 = new Person();
Z,r4HUj!_*m)S0 person2.setId("00002");ITPUB个人空间:CKIF3sG0K
person2.setName("李为芳");ITPUB个人空间r%ho%]|nuu+~xJ2]
ITPUB个人空间ZIp
m|T(iX
Person person3 = new Person();ITPUB个人空间uUqXmf
person3.setId("00003");ITPUB个人空间K$V{4Z8dp
person3.setName("王微");
luiN[0 ITPUB个人空间2q!gQ)Xx_
persons.add(person1);
:NjpUF"b1F0 persons.add(person2);
ll&F"U%aR0 persons.add(person3);
]#Fl%x
n%LF;Uz0 ITPUB个人空间,G_.h1Z@"V4{
listForm.setPersons(persons);ITPUB个人空间{$J?;omk%DD
ITPUB个人空间/d|L9E8ys%lt?&~
return mapping.findForward("success");ITPUB个人空间,D)S}3`:a/K'g1i%B(b
}ITPUB个人空间SA%QbGn$Fm"f
标签输出的结果为:
9| }Q4_.F:[
T9m0j0ITPUB个人空间r wOl#d$[H
00001-->赵辰