1.建一个Webproject。加入Struts2支持。

2.创建两个实体类:

a). Mother(母亲)的Java类。

package struts.map.entity;



import java.io.Serializable;



public class Mother implements Serializable {



private static final long serialVersionUID = 1L;



private int motherId;        //母亲ID

    private String motherName;        //母亲名字

    public int getMotherId() {

return motherId;

}

public void setMotherId(int motherId) {

this.motherId = motherId;

}

public String getMotherName() {

return motherName;

}

public void setMotherName(String motherName) {

this.motherName = motherName;

}

}

b).Children(孩子)的Java类

package struts.map.entity;



import java.io.Serializable;



public class Children implements Serializable {



private static final long serialVersionUID = 1L;



private int childId;        //孩子ID

    private int motherId;        //母亲的ID

    private String childName;        //孩子名字

    

public int getChildId() {

return childId;

}

public void setChildId(int childId) {

this.childId = childId;

}

public int getMotherId() {

return motherId;

}

public void setMotherId(int motherId) {

this.motherId = motherId;

}

public String getChildName() {

return childName;

}

public void setChildName(String childName) {

this.childName = childName;

}

}

3. 创建一个Action。并创建一位母亲和她的孩子。

package struts.map.test;



import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

import java.util.Map;



import struts.map.entity.Children;

import struts.map.entity.Mother;



import com.opensymphony.xwork2.ActionSupport;



public class Struts2_Map extends ActionSupport {



private static final long serialVersionUID = 1L;



private Map<Mother,List<Children>> motherChildn;



public Map<Mother, List<Children>> getMotherChildn() {

return motherChildn;

}



@Override

public String execute() throws Exception {

/*-------------------以对象做父节点的键,List做子节点的值。的Map-----------------------*/

Mother mother = new Mother();

mother.setMotherId(10000);

mother.setMotherName("花木兰");



Children children1 = new Children();

children1.setChildId(10000);

children1.setMotherId(10000);

children1.setChildName("小花木兰1");



Children children2 = new Children();

children2.setChildId(10001);

children2.setMotherId(10000);

children2.setChildName("小花木兰2");



Children children3 = new Children();

children3.setChildId(10002);

children3.setMotherId(10000);

children3.setChildName("小花木兰3");



motherChildn = new HashMap<Mother,List<Children>>();



List<Children> childrens = new ArrayList<Children>();



childrens.add(children1);

childrens.add(children2);

childrens.add(children3);



motherChildn.put(mother,childrens);



return SUCCESS;

}

}

struts.xml

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">

<struts>

<package name="map" extends="struts-default">

<action name="struts_map" class="struts.map.test.Struts2_Map">

<result>result.jsp</result>

</action>

</package>

</struts>  

4.创建两个页面:

a).跳转页面:

<%@ page language="java" pageEncoding="UTF-8"%>

<%

String path = request.getContextPath();

%>



<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>



<title>Struts_Map</title>

<meta http-equiv="pragma" content="no-cache">

<meta http-equiv="cache-control" content="no-cache">

<meta http-equiv="expires" content="0">    

<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">

<meta http-equiv="description" content="This is my page">

</head>



<body>

<a href="struts_map.action">查看Map</a>

</body>

</html>

b).终于页面,也是作重要的页面:

<%@ page language="java" pageEncoding="UTF-8"%>

<%@taglib uri="/struts-tags" prefix="s" %>

<%

String path = request.getContextPath();

%>



<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>



<title>Struts_Map</title>

<meta http-equiv="pragma" content="no-cache">

<meta http-equiv="cache-control" content="no-cache">

<meta http-equiv="expires" content="0">    

<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">

<meta http-equiv="description" content="This is my page">

</head>



<body>

<div>

<h3>-----------------以对象做父节点的键,List做子节点的值。的Map--------------------</h3>

<s:iterator var="mc" value="motherChildn">

<div>

母亲名称:<s:property value="key.motherName"/>

</div>

<s:iterator var="ch" value="value">

<div>

&nbsp;&nbsp;&nbsp;孩子名称:<s:property value="#ch.childName"/>

</div>

</s:iterator>

</s:iterator>

</div>

</body>

</html>

终于执行结果:

版权声明:本文博客原创文章,博客,未经同意,不得转载。

使用Struts2的iterator标签遍历复杂Map种类的更多相关文章

  1. struts2使用iterator标签显示嵌套Map - 云自无心水自闲 - BlogJava

    ">            <s:iterator value="dataMap.keySet()" id="class">     ...

  2. 使用struts2的iterator标签出现的错误

    错误如下所示: 代码如下所示: <body> <s:debug></s:debug> 获取list的值第一种方式 <!-- 3 获取值栈list集合数据 -- ...

  3. Struts2标签遍历List<Map<String,String>>

    <s:if test="resultList != null && resultList.size() > 0"> <s:iterator  ...

  4. c标签遍历List<Map<String, Object>> 数据格式

    <c:forEach varStatus="loop" var="dataMap" items="${dataMap}"> &l ...

  5. 转:Struts2<s:iterator value="" var="lst">中var的使用和一些标签的使用体会

    比如<s:iterator value="pmOperateList" var="lst"> <!-- iterator加上var 等价于重新 ...

  6. Struts 2的iterator标签来遍历一个含有双层List的嵌套

    今天碰到一个很有意思的问题,就是需要用Struts 2的iterator标签来遍历一个含有双层List的嵌套. 首先我们从最基础的说起,用iterator标签遍历一个List. 如果Action中有一 ...

  7. struts2标签 遍历map集合

    首先我们来构造几个map集合.    假设如下代码 都是在ssh配置环境下搭建好,(至少struts2开发环境搭建好) (1).java 代码          下面的student对象包含的字段为 ...

  8. struts2的s:iterator 标签 详解

    s:iterator 标签有3个属性:value:被迭代的集合id   :指定集合里面的元素的idstatus 迭代元素的索引1:jsp页面定义元素写法 数组或list <s:iterator ...

  9. struts2的s:iterator 标签 详解<转>

    struts2的s:iterator 可以遍历 数据栈里面的任何数组,集合等等 以下几个简单的demo: s:iterator 标签有3个属性:     value:被迭代的集合     id   : ...

随机推荐

  1. ArcEngine判断要素(feature)是否为multipart feature及分解(炸开)代码

    转自原文 ArcEngine判断要素(feature)是否为multipart feature及分解(炸开)代码 #region 校验合法性 ArrayList pFeatureArray = nul ...

  2. Java NIO学习笔记之基本概念

    一.缓冲区操作 缓冲区,以及缓冲区如何工作,是所有 I/O 的基础.所谓"输入/输出"讲的无非就是把数据移进或移出缓冲区. 进程使用 read( )系统调用,要求其缓冲区被填满.内 ...

  3. 详解springmvc控制登录用户session失效后跳转登录页面

    springmvc控制登录用户session失效后跳转登录页面,废话不多少了,具体如下: 第一步,配置 web.xml <session-config> <session-timeo ...

  4. 【C#】万事开头难(二)&lt;机房重构&gt;

    前言 机房将要进行完了,之所以仍然使用这个题目,是由于我想告诉自己.无论面对多么未知的事物.不要害怕,去做就好.在这么多天的机房重构中,发现了好多问题,也攻克了好多问题,今天,就把我解决的问题分享给大 ...

  5. [Django] Auth django app with rest api

    First, start the env: . bin/activate Then cd to our module cd djangular Create a new app: python man ...

  6. Photoshop怎么实现图片局部马赛克

    学好ps是一件很重要的事情,作为日常必备技能,不管是在遇到这样的同时请求帮忙或者老板发配的任务的时候,就能分分钟派上用场了. 1:安装运行photoshop,点击文件-打开,选择要ps的图片. 图片. ...

  7. CEO 系列之一:如何当好创业公司 CEO?(不要用战术的勤奋掩盖战略的懒惰,在创业过程中,最核心问题,就是能把创业情怀变成具体问题。这个问题越具体越好)

    1. 创业公司要先定一个目标,要善于把目标简化, 分解成一个, 一个更具体,更简单的问题2. 针对简单的问题进行聚焦, 做深做强3. 在做的过程中, 把断地推出自己的产品到市场上去试错, 要用事实来证 ...

  8. 学习游戏服务器开发必看,C++游戏服务器开发常用工具介绍

    C++游戏服务器开发常用工具介绍 在软件开发过程中需要使用的工具类型实属众多,从需求建模到软件测试,从代码编译到工程管理,这些工具都对项目有着不可替代的作用.庄子有云,"吾生也有涯,而知也无 ...

  9. Python 库的使用 —— dis

    dis:Disassembler of Python byte code into mnemonics. Java.Python.Ruby 1.9 这些语言均使用了栈机器型的 VM.因为是基于栈的实现 ...

  10. BootstrapTable的使用教程

    官方网站:http://bootstrap-table.wenzhixin.net.cn/参考文档:http://issues.wenzhixin.net.cn/bootstrap-table/ind ...