1. 什么是OGNL表达式
    1. Object-Graph Navigation Language的缩写。
    2. 可以遍历整个对象结构图,实现对象类型转换等功能的表达式。
    3. OGNL实际上是个Map集合,有一个上下文根对象。
    4. ActionContext作为OGNL上下文,并把ValueStack作为根对象。
  2. ValueStack
    1. 可以执行,增加,删除,查询。
    2. struts2会把Action放到栈顶。
  3. OGNL中的几个家伙
    1. #
      1. 访问非根对象属性
      2. #session.msg
        相当于 ActionContext.getContext().getSession().getAttribute("msg");
    2. %
      1. 字符串类型时,计算OGNL表达式
    3. $
      1. 在国际化资源文件中,引用OGNL表达式
      2. 在Struts 2框架的配置文件中引用OGNL表达式
    4. @
      1. 访问静态方法
    5. 常用标签
      1. 流程控制标签
      2.  <s:if test="{}"></s:if>//if表达式
        <s:if test="{}"></s:if><s:else></s:else>//if else 表达式
        <s:ifelse test="{}"></s:ifelse>//Ifelse 表达式
        //test 字符串 要加%{} 判断集合元素的符号 in,not in
        //in 判断集合是否在当前集合内,not in 判断集合是否不在当前集合内. OGNL过滤表达式
        ?://获取所有符合的元素
        ^://获取第一个符合的元素
        $://获取最后一个符合的元素 <s:iterator value=""></s:iterator>
        //对一个集合进行迭代
        //id 集合内元素的ID
        //status 指定迭代对象名称
        <s:iterator value="books.{?#this.price > 35}">
        //?#this.price > 35 this 指取当前集合内的属性值符合条件的元素。
        <s:property value="title" /> - $<s:property value="price" />
        </s:iterator>
      3. 通用标签
      4.  <s:property value="">
        //default 获取属性值.
        //scope 指定命名空间.
        //value 属性名
        //id 元素标识 <s:set scope="" name="" value="">
        //设置属性值 value 如果是字符串需要加'',否则会当成变量.
        //scope 可以是application、session、request、 page或action. <s:action id="" name="" namespace="" executeResult="false|true" ignoreContextParams="false|true"/>
        //action 引用名称 namespace 命名空间 executeResult 是否返回视图 ignoreContextParams 是否传递参数 <s:bean id="" name="">
        // id 引用名称 带id 标签结束不会移除对象 name 实现类全路径
        <s:param name="" value=""/>
        //name 参数名称 value 参数值
        </s:bean> <s:date format="" nice="" name="" id=""/>
        //format 日期输出格式 nice 输出时间差 name 时间值 id 引用名称
      5. 调试标签
      6.  <s:debug/>
        //输出所有的信息valuestack context <s:fielderror/>
        //控制端 调用addFieldErrors(,) <s:actionerror/>
        //获取Action错误消息 需要在控制端调用addActionError 方法 <s:actionmessage/>
        //获取Action消息 需要在控制端调用addActionMessage方法
      7. 表单标签

struts2简单入门-OGNL表达式的更多相关文章

  1. (补充)9.Struts2中的OGNL表达式

    OGNL表达式概述 1. OGNL是Object Graphic Navigation Language(对象图导航语言)的缩写 * 所谓对象图,即以任意一个对象为根,通过OGNL可以访问与这个对象关 ...

  2. 20160502-struts2入门--ognl表达式

    一.OGNL表达式语言 OGNL是Object Graphic Navigation Language(对象图导航语言)的缩写,它是一个开源项目. Struts 2框架使用OGNL作为默认的表达式语言 ...

  3. struts2学习笔记--OGNL表达式1

    struts2标签库主要使用的是OGNL语言,类似于El表达式,但是强大得多,它是一种操作对象属性的表达式语言,OGNL有自己的优点: 能够访问对象的方法,如list.size(); 能够访问静态属性 ...

  4. struts2框架之OGNL表达式概述(在代码中使用OGNL表达式)

    1. OGNL是Object Graphic Navigation Language(对象图导航语言)的缩写 * 所谓对象图,即以任意一个对象为根,通过OGNL可以访问与这个对象关联的其它对象 * 通 ...

  5. Struts2中的OGNL表达式

    一.OGNL表达式简介 OGNL是Object Graphic Navigation Language(对象图导航语言)的缩写,它是一个开源项目.所谓对象图,即以任意一个对象为根,通过OGNL可以访问 ...

  6. 【java开发系列】—— struts2简单入门示例

    前言 最近正好有时间总结一下,过去的知识历程,虽说东西都是入门级的,高手肯定是不屑一顾了,但是对于初次涉猎的小白们,还是可以提供点参考的. struts2其实就是为我们封装了servlet,简化了js ...

  7. struts2中使用ognl表达式时各种符号的使用规则$,#,%

    OGNL表达式struts2标签“%,#,$” 一.什么是OGNL,有什么特点? OGNL(Object-Graph Navigation Language),大概可以理解为:对象图形化导航语言.是一 ...

  8. 【基于初学者的SSH】struts2 值栈的详解与struts2标签库+ognl表达式

    一:什么是值栈:struts2里面本身提供的一种存储机制,类似于域对象,值栈,可以存值和取值 特点:先进后出,最上面的元素叫做栈顶,也叫压栈. <s:debug></s:debug& ...

  9. 2018.11.24 struts2中的OGNL表达式及两者的结合

    OGNL表达式 OGNL:对象视图导航语言. ${user.addr.name} 这种写法就叫对象视图导航. OGNL不仅仅可以视图导航.支持比EL表达式更加丰富的功能. 理解图示 使用OGNL准备工 ...

随机推荐

  1. threejs学习笔记(一)

    得到webgl的渲染管线

  2. 【转】从源码分析Handler的postDelayed为什么可以延时?

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/aliankg/article/details/70842494Thread/Hander/Loope ...

  3. ESP8266当中继

    WiFi推原理(转) http://jb.tongxinmao.com/Article/Detail/id/412 https://www.anywlan.com/thread-409913-1-1. ...

  4. K8S集群技术

    1.快速部署K8S环境 k8s-m :10.0.0.11   k8s-n1 :10.0.0.12   k8s-n2 :10.0.0.13 2.所有节点安装docker环境及依赖 2.1 上传docke ...

  5. elementUi源码解析(1)--项目结构篇

    因为在忙其他事情好久没有更新iview的源码,也是因为后面的一些组件有点复杂在考虑用什么方式把复杂的功能逻辑简单的展示出来,还没想到方法,突然想到element的组件基本也差不多,内部功能的逻辑也差不 ...

  6. Asp.Net Core使用NLog+Mysql的几个小问题

    项目中使用NLog记录日志,很好用,之前一直放在文本文件中,准备放到db中,方便查询. 项目使用了Mysql,所以日志也放到Mysql上,安装NLog不用说,接着你需要安装Mysql.Data安装包: ...

  7. HDU-1695 莫比乌斯反演

    这里学习一下莫比乌斯反演 翻看了很多书,发现莫比乌斯反演,准确来说不是一种固有的公式,而是一种法则. 我们定义F(n),为f(d)的和函数,而定义f(n)为某儿算术函数. 反演公式1:反演n的因子时 ...

  8. 微信公众号开发 [05] 微信支付功能开发(网页JSAPI调用)

    1.微信支付的流程 如下三张手机截图,我们在微信网页端看到的支付,表面上看到的是 "点击支付按钮 - 弹出支付框 - 支付成功后出现提示页面",实际上的核心处理过程是: 点击支付按 ...

  9. 删除a表中和b表相同的数据

    删除a表中和b表相同的数据 - 冯索的专栏 - CSDN博客https://blog.csdn.net/wugouzi/article/details/9374329 oracle 查找A表存在B表不 ...

  10. 如何给框架添加API接口日志

    前言 用的公司的框架,是MVC框架,看了下里面的日志基类,是操作日志,对增删改进行记录, 夸张的是一张业务的数据表 需要一张专门的日志表进行记录, 就是说你写个更新,添加的方法都必须写一遍操作日志,代 ...