zoukankan      html  css  js  c++  java
  • Struts2使用OGNL遍历各种map总结

    一.Action中的代码:MapAction.java

    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代码
    <%@ 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)
      <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>

  • 相关阅读:
    RSA
    DES
    MD5
    增删改查
    [转]数据绑定之DataFormatString
    分页通用存储过程(未验证)
    浅谈sql中的in与not in,exists与not exists的区别
    [转]order by 1是什么意思?
    bak骗子公司
    Performance Considerations for Entity Framework 4, 5, and 6
  • 原文地址:https://www.cnblogs.com/kabi/p/5182118.html
Copyright © 2011-2022 走看看