tinguo002

           

          struts2 遍歷Map的N中方法

           

          來源
          http://hi.baidu.com/iduany/item/19f9f622603ba8172a0f1c72
          struts2 遍歷Map的N中方法

          主要針對以下幾種情況的Map:
          private Map<String, String> strMap = new HashMap<String, String>();
          private Map<String, Person> perMap = new HashMap<String, Person>();

          private Map<String, String[]> strArryMap = new HashMap<String, String[]>();
          private Map<String, List<Person>> perLstMap = new HashMap<String, List<Person>>();

          下面給出一個示例
          1).ExpressMapAction.java
          package com.expre.struts2.action;

          import java.util.ArrayList;
          import java.util.HashMap;
          import java.util.List;
          import java.util.Map;

          import com.expre.struts2.bean.Person;
          import com.expre.struts2.bean.Phone;
          import com.opensymphony.xwork2.ActionSupport;

          public class ExpressMapAction extends ActionSupport {
          private static final long serialVersionUID = -4251480679223607716L;

          private Map<String, String> strMap = new HashMap<String, String>();

          private Map<String, Person> perMap = new HashMap<String, Person>();

          private Map<String, String[]> strArryMap = new HashMap<String, String[]>();

          private Map<String, List<Person>> perLstMap = new HashMap<String, List<Person>>();

          //get&set方法,這里都省略了
          ...................

          @Override
          public String execute() throws Exception {

          // 值為字符串
          strMap.put("first", "zxx");
          strMap.put("second", "lsx");
          strMap.put("third", "wxh");

          // 值為javabean對象
          Person person = new Person("001", "zxx", 22);
          person.setPhone(new Phone("apple", 18957157189L));

          perMap.put("one", person);

          person = new Person("002", "lsx", 25);
          person.setPhone(new Phone("HTC", 18957157187L));
          perMap.put("two", person);

          // 數組處理
          strArryMap.put("arr1", new String[] { "1", "310000", "hz" });
          strArryMap.put("arr2", new String[] { "2", "310001", "xh" });
          strArryMap.put("arr3", new String[] { "3", "310002", "sc" });

          //list對象處理
          List<Person> list=new ArrayList<Person>();
          list.add(new Person("001", "zxx", 22));
          list.add(new Person("002", "lsx", 25));
          perLstMap.put("one", list);

          list=new ArrayList<Person>();
          list.add(new Person("003", "wlx", 26));
          list.add(new Person("004", "hzx", 28));
          perLstMap.put("two", list);

          return "result";
          }
          }

          2).struts.xml
          <!DOCTYPE struts PUBLIC
          "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
          "<struts>
          <package name="express" extends="struts-default" namespace="/exp">
          <action name="expressMap" class="com.expre.struts2.action.ExpressMapAction">
          <result name="result">/jsp/strMap.jsp</result>
          </action>
          </package>
          </struts>

          3.web.xml
          <?xml version="1.0" encoding="UTF-8"?>
          <web-app version="2.4" xmlns="
          http://java.sun.com/xml/ns/j2ee
          <filter>
          <filter-name>struts2</filter-name>
          <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
          </filter>
          <filter-mapping>
          <filter-name>struts2</filter-name>
          <url-pattern>/*</url-pattern>
          </filter-mapping>

          <welcome-file-list>
          <welcome-file>/first.jsp</welcome-file>
          </welcome-file-list>
          </web-app>

          4).strMap.jsp
          <%@ page language="java" pageEncoding="utf-8"%>
          <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
          <%@ taglib uri="/struts-tags" prefix="s"%>
          <html>
          <body>
          <ul>
          <li>訪問Map:<s:property value="strMap"/></li>
          <li>訪問Map中某個元素:
          <s:property value="strMap.first"/> |
          <s:property value="strMap['second']"/> |
          <s:property value="strMap[\'third\']"/>
          </li>
          <li>訪問Map中所有的key:<s:property value="strMap.keys"/></li>
          <li>訪問Map中所有的value:<s:property value="strMap.values"/></li>
          <li>訪問容器的大小:
          <s:property value="strMap.size()"/> |
          <s:property value="strMap.size"/>//這是map特別的地方
          </li>

          <li>迭代循環取值,最簡單
          <s:iterator value="strMap" id="entry">
          <s:property value="#entry"/>{
          key: <s:property value="key"/>
          value:<s:property value="value"/>}|
          </s:iterator>
          </li>

          <li>迭代循環取值
          <s:iterator value="strMap.keySet()" id="key">
          <s:property value="key"/>或<s:property value="#key"/>:
          <s:if test="strMap[#key]!=null">
          <s:property value="strMap.get(#key)"/> |
          </s:if>
          </s:iterator>
          </li>

          <li>迭代循環取數組值
          <s:iterator value="strMap" id="entry">
          <s:property value="#entry"/>{
          <s:property value="value[0]"/>
          <s:property value="value[1]"/> |
          <s:property value="value[2]"/> }
          </s:iterator>
          </li>

          <li>迭代循環取對象值,最直接:
          <ul>
          <s:iterator value="perMap" id="entry">
          <li>
          <s:property value="#entry"/> {
          ID:<s:property value="value.ID"/>
          Name:<s:property value="value.name"/>
          Age:<s:property value="value.age"/> }|
          </li>
          </s:iterator>
          </ul>
          </li>

          <li>迭代循環取對象的屬性值
          <s:iterator value="perMap.keySet()" id="key">
          <s:property value="#key"/>:
          <s:iterator value="perMap.get(#key)">
          <s:property value="ID"/>
          <s:property value="name"/>
          <s:property value="phone.name"/>
          </s:iterator>|
          </s:iterator>
          </li>

          <li>稍復雜的迭代
          <s:iterator value="perLstMap" id="entry">
          <s:set name="total" value="#entry.value.size"/>
          <s:iterator value="#entry.value" status="s">
          <s:if test="#s.first">
          <s:property value="#entry.key"/>:共${total}條
          </s:if> {
          <s:property value="ID"/> |
          <s:property value="name"/> |
          <s:property value="age"/>
          };
          </s:iterator>
          </s:iterator>
          </li>
          </ul>
          </body>
          </html>

          5).通過url:http://localhost:8080/struts2Jsp/exp/expressMap.action訪問就會看到輸出!

          別的不多說,strMap.jsp已經把使用方法都寫出來了!



          歡迎大家訪問我的個人網站 萌萌的IT人

          posted on 2012-07-26 17:51 一堣而安 閱讀(6252) 評論(0)  編輯  收藏 所屬分類: struts2


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          導航

          統計

          常用鏈接

          留言簿(1)

          隨筆分類

          隨筆檔案

          收藏夾

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 阜新市| 乌鲁木齐县| 六枝特区| 兖州市| 新绛县| 绥芬河市| 黔西县| 卓资县| 天长市| 沅陵县| 通道| 宜君县| 双城市| 清流县| 河南省| 玉山县| 峨眉山市| 马公市| 文山县| 龙口市| 敖汉旗| 垣曲县| 华坪县| 顺昌县| 门源| 安丘市| 合作市| 广德县| 房山区| 广州市| 外汇| 江西省| 普安县| 阳原县| 淳安县| 竹溪县| 连平县| 松潘县| 浪卡子县| 类乌齐县| 商南县|