服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|JavaScript|易语言|

服务器之家 - 编程语言 - JAVA教程 - Struts2 使用OGNL遍历map方法详解

Struts2 使用OGNL遍历map方法详解

2021-01-12 14:39苍蝇也是肉呀 JAVA教程

这篇文章主要介绍了Struts2 使用OGNL遍历map方法详解,具有一定参考价值,需要的朋友可以了解下。

一.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,String> map;
 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>
<title>struts2中的map遍历总结</title>
</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

延伸 · 阅读

精彩推荐
  • JAVA教程Java开发者结合Node.js编程入门教程

    Java开发者结合Node.js编程入门教程

    这篇文章主要介绍了Java开发者结合Node.js编程入门教程,我将先向您展示如何使用Java EE创建一个简单的Rest服务来读取 MongoDB数据库。然后我会用node.js来实现...

    java教程网5052019-11-28
  • JAVA教程Java解压zip文件的关键代码

    Java解压zip文件的关键代码

    本文给大家分享一段java解压zip文件的关键代码,代码简单易懂,非常不错,具有参考借鉴价值,感兴趣的朋友一起看看吧...

    梦想、编织着青春5102020-06-18
  • JAVA教程java中参数传递方式详解

    java中参数传递方式详解

    这篇文章主要介绍了java中参数传递方式详解的相关资料,需要的朋友可以参考下...

    polly4772020-08-31
  • JAVA教程Java中一个for语句导致无穷大死循环的例子

    Java中一个for语句导致无穷大死循环的例子

    这篇文章主要介绍了Java中一个for语句导致无穷大死循环的例子,本文给出的是一个很特别的例子,这个例子会跟你所想的结果不一样,需要的朋友可以参考下...

    junjie6132019-12-23
  • JAVA教程JAVA中常见异常类

    JAVA中常见异常类

    本文主要介绍了JAVA中的常见异常类。具有很好的参考价值,下面跟着小编一起来看下吧 ...

    toyzhou2982020-07-31
  • JAVA教程Java执行JavaScript代码

    Java执行JavaScript代码

    这篇文章主要为大家详细介绍了Java执行JavaScript代码的具体操作方法,感兴趣的小伙伴们可以参考一下 ...

    云聪5142020-04-13
  • JAVA教程java开发微信公众号支付

    java开发微信公众号支付

    这篇文章主要给大家结合微信支付接口开发的实践,从获取用户授权到各主要接口的使用方法等方面介绍微信支付的关键点技术,有需要的小伙伴可以参考下...

    hebedich3342020-01-02
  • JAVA教程浅谈java中null是什么,以及使用中要注意的事项

    浅谈java中null是什么,以及使用中要注意的事项

    下面小编就为大家带来一篇浅谈java中null是什么,以及使用中要注意的事项。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来...

    yyke6582021-01-04