EL表达式:

>>单纯在jsp页面中出现,是在四个作用域中取值,page,request,session,application.

>>如果在struts环境中,它除了有在上面的四个作用域的取值功能外,还能从值栈(valuestack)中取值.

>>特点1:${name},name在值栈中的查找顺序是:先从对象栈中取,取到终止,否则,向map中取。

>>特点2:在对象栈的查找顺序是,先从model中找是否有name这个属性,找到终止,否则,找action中是否有name这个全局变量。

>>特点3:${#name},里面的是不带#号的。

>>特点4:如果放在对象栈中的是一个自定义的对象,那么${property}里面可以直接去该对象的属性值,不用这样${object.property}

OGNL表达式:

1:读取从后台传递的值

%{#name}:表示从值栈的map中取值

%{name}:表示从值栈的对象栈中取值

%{#request.name}:表示从request域中取值

2:自己构建数据

a,构建Map

b,构建List

1.区别

用法区别:OGNL是通常要结合Struts 2的标志一起使用,如

/> struts页面中不能单独使用,el可以单独使用${sessionScope.username}

页面取值区别:

名称

servlet

ognl                                                                           el

parameters

request.getParameter("username")

#username                                             ${username}

request

request.getAttribute("userName")

#request.userName                                ${requestScope.username}

session

session.getAttribute("userName")

#session.userName                               ${sessionScope.username}

application

application.getAttribute("userName")

#application.userName                          ${applicationScope.username}

attr

用于按request > session > application顺序访问其属性(attribute)

#attr.userName相当于按顺序在以上三个范围(scope)内读取userName属性,直到找到为

2.ognl讲解

OGNL是Struts

2默认的表达式语言。是Object Graphic Navigation Language(对象图导航语言)的缩写,它是一个开源项目。

1.#符号的用途一般有三种。   1)访问非根对象属性,例如示例中的#session.msg表达式,由于Struts 2中值栈被视为根对象,所以访问其他非根对象时,需要加#前缀。实际上,#相当于ActionContext.getContext();;#session.msg表达式相当于ActionContext.getContext().getSession().

getAttribute(”msg”) 。     2)用于过滤和投影(projecting)集合,如示例中的persons.{?#this.age>20}。

3)用来构造Map,例如示例中的#{’foo1′:’bar1′, ’foo2′:’bar2′}。

2.%符号 %符号的用途是在标志的属性为字符串类型时,计算OGNL表达式的值。如下面的代码所示: 构造Map

The value of key “foo1″ is

不使用%:

使用%:

The value of key “foo1″ is

不使用%:

使用%:

3.$符号

$符号主要有两个方面的用途。    在国际化资源文件中,引用OGNL表达式,例如国际化资源文件中的代码:reg.agerange=国际化资源信息:年龄必须在${min}同${max}之间。     在Struts 2框架的配置文件中引用OGNL表达式,例如下面的代码片断所示:

10

100

BAction-test校验:数字必须为${min}为${max}之间!

10

100

BAction-test校验:数字必须为${min}为${max}之间!

java el ognl_el表达式跟ognl表达式的区别相关推荐

  1. java el ognl_EL和OGNL表达式的区分

    OGNL是通常要结合Struts 2的标志一起使用,如 struts页面中不能单独使用,el可以单独使用 ${sessionScope.username} 页面取值区别: 名称 servlet ogn ...

  2. java ognl表达式_java -------ognl表达式入门

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 ----------------------------------------------------------------------------- ...

  3. el表达式跟ognl表达式的区别(用法和页面取值)

    1.区别 用法区别:OGNL是通常要结合Struts 2的标志一起使用,如<s:property value="#xx" /> struts页面中不能单独使用,el可以 ...

  4. java ognl表达式_[JavaWeb基础] 029.OGNL表达式介绍

    1.OGNL概述 OGNL,全称为Object-Graph Navigation Language,它是一个功能强大的表达式语言,用来获取和设置Java对象的属性,它旨在提供一个更高的更抽象的层次来对 ...

  5. struts2教程(9)--OGNL表达式使用

    OGNL表示式使用和值栈 一.介绍 OGNL是Object Graphic Navigation Language(对象图导航语言)的缩写,它是一个开源项目. Struts2框架使用OGNL作为默认的 ...

  6. OGNL表达式的基本用法

    OGNL表达式的基本用法 借助 s:property标签输出内容到浏览器 s:property的作用 写法: <%--导入标签库--%> <%@ taglib uri="/ ...

  7. OGNL表达式的使用方法

    OGNL表达式的使用方法 定义: OGNL是对象图导航语言(即该表达式访问的是对象及对象的属性) 知识点: 1.基本属性的访问 1.1 访问值栈中action的普通属性 [xhtml:nogutter ...

  8. Java el ognl 正则,struts2中ognl表达式 各种合集_struts2 ognl 正则表达式_struts2 ognl表达式...

    摘要 0x00 前言 它们是对结构说明236的引用(因为字段256中的代码和在字段240中的代码相同)和对数据结构222的开始的引用,字段258包含该开始地址.三.data uri schema将文件 ...

  9. java el表达式 if else_jsp EL表达式和JSTL标签if-else if-else用法

    java web javaEE ,jsp EL表达式和JSTL标签if-else if-else四种用法 一.条件运算符 ${user.gender==?'男':'女'} 二.if() code.. ...

最新文章

  1. 云原生解决什么问题?
  2. openshift harp.js heroku react-router 4
  3. python在财务领域的应用-浅谈财务智能化在实际工作中的运用
  4. linux下如何修改weblogic console登陆的用户名和密码
  5. 简单程序跟踪调试方式
  6. jMeter 里如何调用函数 function
  7. linux美化原理,x-window字体原理及美化
  8. 《C++ Primer 5th》笔记(8 / 19):IO库
  9. 互联网金融--支付结算平台的测试
  10. Unity采用Forge Networking Remastered数据的远程传输Basic Moving Cube Example
  11. 2022年SQL经典面试题总结(带解析)
  12. 关于Axure原型在Axure share上的尺寸问题。
  13. HTML中 常见的浏览器内核有哪些,主流浏览器的内核以及内核前缀是什么?
  14. python夜曲编程_夜曲编程——我毕业了!!!
  15. 基于SNMP数据采集模块的设计和实现2
  16. Hadoop 启动 HDFS DataNode 时报错:Invalid dfs.datanode.data.dir
  17. 2020移动apn接入点哪个快_最新联通上网卡APN的设置方法
  18. 【git】git下拉项目Pulling is not possible because you have unmerged files解决方案
  19. 程序员的高逼格头像——自制八爪鱼少年
  20. 头脑王者服务器维护,头脑王者请求超时怎么解决 头脑王者查询服务器失败怎么回事...

热门文章

  1. 原码的一位乘法和补码的一位乘法对比
  2. 1109 Group Photo (25 分)【难度: 一般 / 知识点: 模拟 排序】
  3. Acwing第 16 场周赛【未完结】
  4. JVM堆新生代分配比例
  5. Zookeeper集群搭建伪分布式
  6. centos 升级mysql5.6_centos6.9升级mysql5.1到mysql5.6
  7. 【数据结构-排序】1. 图解插入排序三种实现(插入排序/折半排序/希尔排序)
  8. 在国企当程序员是什么体验?
  9. hibernate教程--持久化类状态
  10. 数据结构与算法-排序与查找(java描述)