关于jsp利用EL和struts2标签来遍历ValueStack的东东 ------> List<Map<K,V>> 以及 Map<K,<List<xxx>>> 的结构遍历

//第一种结构Map<K,<List<xxx>>>  <body>
  <%
      //显示map<String,List<Object>>
          Map map = new HashMap<String,List<String>>();
          List list = new ArrayList<String>();
          list.add("list1-1");
          list.add("list1-2");
          list.add("list1-3");

          List list2 = new ArrayList<String>();
           list2.add("list2-1");
           list2.add("list2-2");
           list2.add("list2-3");
           map.put("a",list);
          map.put("b",list2);

//          ActionContext.getContext().getValueStack().
        request.setAttribute("map1",map);

   %>
   <%out.print("helloworld用于测试map和list值栈的遍历 "); %>
      <s:iterator value="#request.map1" var="list">
           map_key : <s:property value="#list.key"/></br>
           <s:iterator value="#list.value" var="current">
                   list值:<s:property value="current"/></br>
           </s:iterator>
   </s:iterator>

  </body>

//打印结果helloworld用于测试map和list值栈的遍历 

map_key : blist值:list2-1list值:list2-2list值:list2-3map_key : alist值:list1-1list值:list1-2list值:list1-3
//第二种结构 List<Map<K,V>> 

  <%
           List list = new ArrayList<Map<String,String>>();
               Map map1 = new HashMap<String,String>();
               map1.put("a","map1-1");
               map1.put("b","map1-2");

               Map  map2 = new HashMap<String,String>();
               map2.put("a","map2-1");
               map2.put("b","map2-2");
               map2.put("c","map2-3");
               list.add(map1);
               list.add(map2);

               //放到root栈里面而非map栈中
       //        ActionContext.getContext().getValueStack().push(list);
               request.setAttribute("list",list);

                  %>

   <s:debug></s:debug>
   <%out.print("helloworld用于测试map和list值栈的遍历 "); %>
       <s:iterator value="#request.list" var="list1"></br>
           <s:iterator value="#list1" var="map" ></br>
               <s:property value="#map.key"/>
               <s:property value="#map.value"/>
           </s:iterator>

//打印结果helloworld用于测试map和list值栈的遍历 

b map1-2 a map1-1 

b map2-2 c map2-3 a map2-1
时间: 2024-12-17 12:52:11

关于jsp利用EL和struts2标签来遍历ValueStack的东东 ------> List<Map<K,V>> 以及 Map<K,<List<xxx>>> 的结构遍历的相关文章

jsp页面,使用Struts2标签,传递和获取Action类里的参数,注意事项。&lt;s:a action&gt;&lt;s:iterator&gt;&lt;s:param&gt;ognl表达式

在编写SSH2项目的时候,除了使用<s:form>表单标签向Action类跳转并传递参数之外,很更多时候还需要用到<s:a action="XXX.action">这个链接标签进行跳转,此时,传递需要的参数必不可少.此外,在jsp页面获取Action类传来的数据时,也需要留心一下属性获取的方式. 之前在这里,由于我的粗心大意,导致了jsp页面上没有相应的数据显示出来.原本以为是没有从数据库读取到数据,使得我从持久层.dao层.service层.action类检查

框架 day29 Struts2-上传,下载,OGNL与Struts2的结合(值栈与ActionContext),Struts2标签

文件上传 1.1回顾 *浏览器端: <formmethod="post" enctyp="multipart/form-data"> <inputtype="file" name="image"> <inputtype="submit"> *服务器端: 手动方式 第三方:commons-fileupload  核心类ServletFileUpload 1.2介绍 *str

struts2标签遍历各种形式数据集合

在类中定义的集合类型如下: private String [] arryStr; private List<User> list; private Map<String,String> map; private Map<Integer,User> userMap; private Map<String,String[]> arrayMap; private Map<String,List<User>> userListMap; pri

【Struts2】Ognl与ValueStack

一.OGNL 1.1 概述 1.2 OGNL 五大类功能 1.3 演示 二.ValueStack 2.1 概述 2.2 ValueStack结构 2.3 结论 2.3 一些问题 三.OGNL表达式常见使用符号 3.1 #号 3.2 %号 3.3 $号 一.OGNL 1.1 概述 OGNL是Object-Graph Navigation Language的缩写,它是一种功能强大的表达式语言.比el表达式功能强大.Struts2将ognl表达式语言,集成当sturts2框架中,做为它的默认表达式语言

OGNL和EL表达式对比 Struts2标签和JSTL对比

本人发现Struts2中的标签和OGNL表达式,和Hibernate中用到的EL表达式和JSTL有一定的相似之处,对比学习会更加清晰,所以加以对比,以加深记忆. OGNL(Object-Graph Navigation Language)对象图导航语言 OGNL表达式访问值栈: 1. 值栈(Value Stack),可以理解为一个 存储数据的Map,主要存储了当前action 的 实例.所以就可以使用OGNL访问值栈中的内容,也就是action的属性 2.OGNL表达式通过getter方法 来访

Struts2标签与Jsp的嵌入Java代码之间的变量相互引用

新年的第一天,对programer来说,和往常相比并没有太大不同,代码照样敲.做了一天键盘侠,不见得有什么出彩的成就(其实一直以来似乎都是这样/(ㄒoㄒ)/~~),倒是被曾经绊住的问题再次绊住然后纠结地解决了,顺便复习了一下.问题就是在Struts2标签和Jsp的Java代码直接实现了变量相互引用. 情景1:有一个在valuestack里面有一个变量,而我们目标除了获得这个值之外,还可能会更改它的值,这个操作可能是通过webservice,service.dao等进行,而这些操作都要进行Java

JSP系列:(4)JSP进阶-EL表达式和JSP标签

jsp的核心语法: jsp表达式 <%=表达式%>和 jsp脚本<%>. 以后开发jsp的原则: 尽量在jsp页面中少写,甚至不写java代码. 目标: 1)使用EL表达式代替jsp表达式. 2)使用JSP标签代替jsp脚本. 1.EL表达式 1.1.EL作用 使用EL表达式替换掉jsp表达式 EL表达式作用: 向浏览器输出域对象中的变量值或表达式计算的结果!!! 语法: ${变量或表达式} <%@ page language="java" import=

jsp脚本、jsp声明、jsp输出表达式、javascript、jsp标签、struts2标签

1. 先界定一下题目中概念. (1)jsp脚本:有的地方也叫java脚本,指用<%     %>括起来的jsp页面中的java脚本.所有能在java程序中执行的代码,都可以通过jsp脚本执行. (2)jsp声明:用<%!声明部分%>形式声明的变量和方法.可以直接用在jsp脚本中. (3)jsp输出表达式:用<%=表达式    %>输出表达式的值,效果与jsp脚本中的out.println相同.表达式后面不能有分号. (4)javascript:页面中<script

jsp和el表达式,以及JSTL标签库

1,jsp 1,概念 2,jsp的三种方式 out.write(65);字符 字符串 字符数组 1) <% 中间写java代码 out.println("任何类型"); out.write(65); response.getWriter().println(); response.getWriter().write(); %> 2)定义成员变量 <%! int num = 10 public void test(){} %> 3)表达式定义方式,输出字符串:直接