一.Action中的代码:MapAction.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
package com.zx.demo.action; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import com.opensymphony.xwork2.ActionSupport; import com.zx.demo.model.Product; import com.zx.demo.model.Student; public class MapAction extends ActionSupport { private Map<String,Student> studentMap; private Map<String,String[]> arrayMap; private Map<String,List<Student>> listMap; //这里省略get set方法 public String testMap(){ map= new HashMap<String,String>(); map.put( "1" , "one" ); map.put( "2" , "two" ); studentMap= new HashMap<String,Student>(); studentMap.put( "student1" , new Student( new Long( 1 ), "20034140201" , "张三1" , "男" , 25 )); studentMap.put( "student2" , new Student( new Long( 2 ), "20034140202" , "张三2" , "女" , 26 )); studentMap.put( "student3" , new Student( new Long( 3 ), "20034140202" , "张三3" , "男" , 27 )); arrayMap= new HashMap<String,String[]>(); arrayMap.put( "arr1" , new String[]{ "1" , "2003401" , "leejie" , "male" , "20" }); arrayMap.put( "arr2" , new String[]{ "2" , "2003402" , "huanglie" , "male" , "25" }); arrayMap.put( "arr3" , new String[{ "3" , "2003403" , "lixiaoning" , "male" , "21" }); listMap= new HashMap<String,List<Student>>(); List<Student> list1= new ArrayList<Student>(); list1.add( new Student( new Long( 1 ), "20034140201" , "张三1" , "男" , 25 )); list1.add( new Student( new Long( 2 ), "20034140202" , "张三2" , "男" , 25 )); list1.add( new Student( new Long( 3 ), "20034140203" , "张三3" , "男" , 25 )); listMap.put( "class1" , list1); List<Student> list2= new ArrayList<Student>(); list2.add( new Student( new Long( 1 ), "20034140301" , "李四1" , "男" , 20 )); list2.add( new Student( new Long( 2 ), "20034140302" , "李四2" , "男" , 21 )); list2.add( new Student( new Long( 3 ), "20034140303" , "李四3" , "男" , 22 )); list2.add( new Student( new Long( 4 ), "20034140304" , "李四4" , "男" , 23 )); listMap.put( "class2" , list2); return SUCCESS; } } |
二.前端测试页面:testMap.jsp
Java代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
|
<%@ page contentType="text/html;charset=UTF-8" %> <%@ taglib prefix="s" uri="/struts-tags" %> < html > < head > </ head > < body > < b >1.map中的key为String,value为String字符串</ b >< br > < s:iterator value = "map" id = "column" > < s:property value = "#column" />< br > key: < s:property value = "key" />< br > value:< s:property value = "value" />< br > </ s:iterator > ******************************************< br > < table border = "1" width = "50%" cellspacing = "0" cellpadding = "0" > < tr > < td >key=value</ td > < td >ID</ td > < td >num</ td > < td >name</ td > < td >sex</ td > < td >age</ td > </ tr > ******************************************< br > < b >2.map中的key为String,value为Student对象</ b > < s:iterator value = "studentMap" id = "column" > < tr > < td > < s:property value = "#column" /></ td > < td > < s:property value = "value.id" /></ td > < td > < s:property value = "value.num" /></ td > < td > < s:property value = "value.name" /></ td > < td > < s:property value = "value.sex" /></ td > < td > < s:property value = "value.age" /></ td > </ tr > </ s:iterator > </ table > < p > < table border = "1" width = "50%" cellspacing = "0" cellpadding = "0" > < tr > < td >key=value</ td > < td >ID</ td > < td >num</ td > < td >name</ td > < td >sex</ td > < td >age</ td > </ tr > ******************************************< br > < b >3.map中的key为String,value为String数组</ b > < s:iterator value = "arrayMap" id = "column" > < tr > < td >< s:property value = "#column" /></ td > < td >< s:property value = "value[0]" /></ td > < td >< s:property value = "value[1]" /></ td > < td >< s:property value = "value[2]" /></ td > < td >< s:property value = "value[3]" /></ td > < td >< s:property value = "value[4]" /></ td > </ tr > </ s:iterator > </ table > < p > < table border = "1" width = "50%" cellspacing = "0" cellpadding = "0" > < tr > < td >class</ td > < td >ID</ td > < td >num</ td > < td >name</ td > < td >sex</ td > < td >age</ td > </ tr > ******************************************< br > < b >4.map中的key为String,value为list集合</ b > < s:iterator value = "listMap" id = "column" > < s:set name = "total" value = "#column.value.size" /> < s:iterator value = "#column.value" status = "s" > < tr > < s:if test = "#s.first" > < td rowspan = "${total}" > < s:property value = "#column.key" /> </ td > </ s:if > < td > < s:property value = "id" /> </ td > < td > < s:property value = "num" /> </ td > < td > < s:property value = "name" /> </ td > < td >< s:property value = "sex" /></ td > < td >< s:property value = "age" /></ td > </ tr > </ s:iterator > </ s:iterator > </ table > </ body > </ html > |
附:map的类型为Map<Integer,List(Menu)>在前端遍历,session.powerList存放的类型是:List(Menu)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
< s:iterator value = "map" id = "mapList" > < s:if test = "#mapList.key==0" ><!-key为0的是父级菜单-> < s:iterator value = "#mapList.value" id = "map" > < li class = "current" > <!--遍历父级菜单,取得其名字--> < b >< s:property value = "#map.menuName" /></ b ></ a > < ul > < s:iterator value = "#session.powerList" id = "power" > <!--遍历父级菜单下的所用子菜单--> < s:if test = "#power.menuFatherId==#map.menuId" > < li >< a onClick = "funFrame('admin/<s:property value=" #power.menuUrl" />')" >< s:property value = "#power.menuName" /></ a > </ li > </ s:if > </ s:iterator > </ ul > </ li > </ s:iterator > </ s:if > </ s:iterator > |
总结
以上就是本文关于Struts2 使用OGNL遍历map方法详解的全部内容,希望对大家有所帮助。有兴趣的朋友可以参阅:OGNL表达式基本语法与用法详解 Struts2 通过ognl表达式实现投影 Struts2 OGNL表达式实例详解等。感谢大家对本站的支持。
原文链接:http://blog.sina.com.cn/s/blog_7ffb8dd501014k8y.html