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. loadrunner关联及web_reg_save_param方法浅析

    一.什么是关联 关联(correlation):脚本回放过程中,客户端发出请求,通过关联函数所定义的左右边界值(也就是关联规则),在服务器所响应的内容中查找,得到相应的值,已变量的形式替换录制时的静态 ...

  2. 在虚拟机中,设置centos7静态ip

    https://blog.csdn.net/qq_34182808/article/details/80065908

  3. Linux(CentOS)下设置nginx开机自动启动(2个办法)

    首先,在linux系统的/etc/init.d/目录下创建nginx文件,使用如下命令: vim /etc/init.d/nginx 在脚本中添加如下命令: #!/bin/sh # # nginx - ...

  4. docker 安装 fastdfs

    fastdfs 安装 //1.拉取镜像 docker pull morunchang/fastdfs //2.启动tracker docker run -d --name tracker --net= ...

  5. sql server 压缩数据库

    收缩日志 ALTER DATABASE 数据库名称 SET RECOVERY SIMPLEDBCC SHRINKDATABASE(数据库名称, 0) 压缩数据库ALTER DATABASE 数据库名称 ...

  6. SpringBoot中使用Servlet,Filter,Listener

    项目最近在替换之前陈旧的框架,改用SpringBoot进行重构,初接触,暂时还没有用到Servlet,Filter,Listener的地方,但在之前回顾Servlet的生命周期时,https://ww ...

  7. Linux内存管理 (8)malloc

    专题:Linux内存管理专题 关键词:malloc.brk.VMA.VM_LOCK.normal page.special page. 每章问答: malloc()函数是C函数库封装的一个核心函数,对 ...

  8. Windows 支持 OpenSSH 了!

    从 Win10 1809 和 Windows Server 2019 开始 Windows 开始支持 OpenSSH Server.本文介绍一下其基本的概念和配置方法,本文演示用的环境为 Win10 ...

  9. PowerShell-自定义函数(五)-参数互斥:ParameterSetName

    转自:https://blog.51cto.com/38088444/1920978 这一篇我们来讲一下参数的互斥,何谓参数互斥呢.用九胖风格的话说就是互怼,有我没你,有你没我. 例如我们为一个Pin ...

  10. 通过SQL脚本来查询SQLServer 中主外键关系

    在SQLServer中主外键是什么,以及主外键如何创建,在这里就不说了,不懂的可以点击这里,这篇文章也是博客园的博友写的,我觉得总结的很好: 此篇文章主要介绍通过SQL脚本来查看Sqlserver中主 ...