Ognl经常使用标签:


  1、s:debug

      假设把该标签放入到s:iterator中能够看到当前正在迭代的元素的状态

   2、s:property

      1、输出

      2、value属性:值能直接跟ognl表达式

      3、假设value属性不写。则默认输出栈顶的元素

   3:s:iterator标签

      (1)、iterator迭代Collection,Map,Object[],还能够以组合的形式迭代

      (2)、当前正在迭代的元素在栈顶

      (3)、假设value属性不写,则默认迭代栈顶的元素

      (4)、假设迭代的是map元素。当前正在迭代的元素是Entry<key,value>,这个时候key和value是对象栈

         中的属性

       (5)、var属性,var='aa'相当于给当前正在迭代的元素在map栈又存放了一次,key值为aa

       (6)、status属性,能够获取当前正在迭代的元素的信息count,index,odd,event,查看IteratorStatus这个类

       (7)、end,first,step属性

   4、s:if  s:elseif

       注意:不能使用单个字符进行推断

             <s:if test="name==1">   <s:if test="name=='1'">这样的写法不正确


========================演示样例:
1.在Action中将数据存入valuestack中;
public String putListToMap(){
          List<Person> personList = new ArrayList<Person>(); 
  
          Person p= null;
           for (int i
= 0; i < 50; i++) {
              p= new Person();
               if(i%3==0){
                   p.setPid( "aa");
                   p.setUsername( "P"+i);
              }
               if(i%3==1){
                   p.setPid( "bb");
                   p.setUsername( "p"+i);
              }
               if(i%3==2){
                   p.setPid( "cc");
                   p.setUsername( "p"+i);
              }
              personList.add(p);
              
          }
          
          ActionContext. getContext().put("pList",
personList);
           return "list_map" ;
     }

2.在jsp页面迭代显示集合数据:
<style type= "text/css">
           .odd{
               background-color:red ;
          }
           .even{
               background-color:blue ;
          }
           .blue{
               background-color:yellow ;
          }
           .red{
               background-color:red ;
          }
  </style >

<s:iterator value= "#pList" var ="aa" status="statu">
          
               <!-- 每三行变色 status 使用s:debug能够查看到该类为IteratorStatus
-->
               <tr class= "<s:property value="#statu.index%3==0?'blue':'red'" />">
               <%--<tr class="<s:property
value="#statu.even?'even':'odd'"/>">
                   --%>
                    <td>
                         <s:property value= "pid"/>
                    </td>
                    <td>
                         <s:property value= "username"/>
                    </td>
                    <td>
                         <s:property value="#statu.count" />
                    </td>
                    <td>
                         <s:if test= "#statu.odd">
                             奇数行
                         </s:if>
                         <s:elseif test= "#statu.even">
                             偶数行
                         </s:elseif>
                    </td>
                    <td>
                         <s:property value="#statu.index" />
                    </td>
                    <td>
                         <s:if test="pid=='aa'||pid=='bb'" >
                              <input type= "button" name="adsf" value="改动">
                         </s:if>
                    </td>
                    <td>
                         <s:if test="pid=='cc'||pid=='aa'" >
                              <input type= "button" name="adsf" value="删除">
                         </s:if>
                    </td>
               </tr>
           </s:iterator>


显示结果图:


【Struts2五】ValueStack以及ognl表达式二(经常使用标签)的更多相关文章

  1. struts2官方 中文教程 系列十二:控制标签

    介绍 struts2有一些控制语句的标签,本教程中我们将讨论如何使用 if 和iterator 标签.更多的控制标签可以参见 tags reference. 到此我们新建一个struts2 web 项 ...

  2. 在Struts2框架中使用OGNL表达式(在jsp页面中使用OGNL表达式)

    1. Struts2引入了OGNL表达式,主要是在JSP页面中获取值栈中的值 2. 具体在Struts2中怎么使用呢?如下步骤 * 需要先引入Struts2的标签库(在JSP页面的最上面位置) > ...

  3. Struts2学习笔记(OGNL表达式)

    Struts 2支持以下几种表达式语言: OGNL(Object-Graph Navigation Language),可以方便地操作对象属性的开源表达式语言: JSTL(JSP Standard T ...

  4. Struts2深入学习:OGNL表达式原理

    今天看了ognl表达式,不是很理解,准备以后再回头复习: http://developer.51cto.com/art/201203/322509.htm#case1

  5. 3:4 OGNL 表达式二

    总结: 一:ActionContext的结构: 1:set标签创建的对象也是作为非值栈对象. 2:(非值栈的存储都是以键值对的方式存的.) [问非值栈的 User对象] [用例] 关于request: ...

  6. struts2重点——ValueStack和OGNL

    一.值栈(ValueStack) 1.实现类:OGNLValueStack 2.对象栈:CompoundRoot(针对的是类级别的) (1)继承自 ArrayList —— 先进后出 (2)提供了栈的 ...

  7. Struts2搭建及利用OGNL表达式弹出计算器

    0x01 环境搭建 1.创建Struts2应用 创建一个动态网站项目 2.配置Tomcat启动环境 3.在WebContent目录下的WEB-INF文件夹中创建web.xml,Tomcat启动时会加载 ...

  8. Struts2 OGNL表达式、ValueStack

    OGNL简介 OGNL,即Object-Graph Navigation Language,对象视图导航语言,是一种数据访问语言,比EL表达式更加强大: EL只能从11个内置对象中取值,且只能获取属性 ...

  9. Struts2之 OGNL表达式和值栈

    技术分析之OGNL表达式概述(了解)        1. OGNL是Object Graphic Navigation Language(对象图导航语言)的缩写        * 所谓对象图,即以任意 ...

随机推荐

  1. 网络编程 - 协议遇到IO自动切换

    一.协议遇到IO自动切换 python网络编程,遇到IO自动切换,通过模块gevent来实现: import gevent,time def g1(): print ("g1 is star ...

  2. IDEA -- idea无法导入HttpServlet包解决方法

    IntelliJ IDEA 没有导入 servlet-api.jar 这个架包,需要你手动导入支持. 步骤1: 步骤2: 步骤3: 在弹出框中找到Tomcat安装路径 下的lib文件夹..中的Serv ...

  3. tinyXml输出utf-8文档

    TiXmlDocument虽然能读取utf-8的xml文件,但读入后在内存中是以多字节存储.如果新建一个TiXmlDocument,即使定义头为utf-8编码,直接调用SaveFile方法保存的文档仍 ...

  4. 服务器端编程心得(二)—— Reactor模式

    最近一直在看游双的<高性能linux服务器编程>一书,下载链接: http://download.csdn.net/detail/analogous_love/9673008 书上是这么介 ...

  5. HDU - 4514 湫湫系列故事——设计风景线(并查集判环)

    题目: 随着杭州西湖的知名度的进一步提升,园林规划专家湫湫希望设计出一条新的经典观光线路,根据老板马小腾的指示,新的风景线最好能建成环形,如果没有条件建成环形,那就建的越长越好. 现在已经勘探确定了n ...

  6. mysql负载均衡

    一.docker安装haproxy:docker pull haproxy 二.配置haproxy(参考url:https://zhangge.net/5125.html),vim /usr/loca ...

  7. 10.Spring Bean的生命周期

    Spring IOC容器可以管理Bean的生命周期,允许在Bean声明周期的特定点执行定制的任务. Spring IOC容器对Bean的生命周期进行管理的过程. 1.通过构造器或工厂方法创建Bean实 ...

  8. 记一次C++编程引用obj文件作为静态库文件

    简介 常用静态库文件的名字一般是 ***.lib ,例如 nisyscfg.lib 就是一个静态库文件,但是一个例程居然是引用 **.obj 文件作为静态库,有点非常规啊. 这是一个NI488.2 的 ...

  9. UVA 1589 象棋

    题意: 给出一个黑方的将, 然后 红方有 2 ~ 7 个棋子, 给出摆放位置,问是否已经把黑将将死, 红方已经将军. 分析: 分情况处理, 车 马 炮, 红将情况跟车是一样的. 建一个数组board保 ...

  10. 扫描局域网内所有主机和MAC地址的Shell脚本

    #!/bin/bash #author: InBi #date: 2011-08-16 #website: http://www.itwhy.org/2011/08-20/939.html ##### ...