java el ognl_el表达式跟ognl表达式的区别
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表达式的区别相关推荐
- java el ognl_EL和OGNL表达式的区分
OGNL是通常要结合Struts 2的标志一起使用,如 struts页面中不能单独使用,el可以单独使用 ${sessionScope.username} 页面取值区别: 名称 servlet ogn ...
- java ognl表达式_java -------ognl表达式入门
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 ----------------------------------------------------------------------------- ...
- el表达式跟ognl表达式的区别(用法和页面取值)
1.区别 用法区别:OGNL是通常要结合Struts 2的标志一起使用,如<s:property value="#xx" /> struts页面中不能单独使用,el可以 ...
- java ognl表达式_[JavaWeb基础] 029.OGNL表达式介绍
1.OGNL概述 OGNL,全称为Object-Graph Navigation Language,它是一个功能强大的表达式语言,用来获取和设置Java对象的属性,它旨在提供一个更高的更抽象的层次来对 ...
- struts2教程(9)--OGNL表达式使用
OGNL表示式使用和值栈 一.介绍 OGNL是Object Graphic Navigation Language(对象图导航语言)的缩写,它是一个开源项目. Struts2框架使用OGNL作为默认的 ...
- OGNL表达式的基本用法
OGNL表达式的基本用法 借助 s:property标签输出内容到浏览器 s:property的作用 写法: <%--导入标签库--%> <%@ taglib uri="/ ...
- OGNL表达式的使用方法
OGNL表达式的使用方法 定义: OGNL是对象图导航语言(即该表达式访问的是对象及对象的属性) 知识点: 1.基本属性的访问 1.1 访问值栈中action的普通属性 [xhtml:nogutter ...
- Java el ognl 正则,struts2中ognl表达式 各种合集_struts2 ognl 正则表达式_struts2 ognl表达式...
摘要 0x00 前言 它们是对结构说明236的引用(因为字段256中的代码和在字段240中的代码相同)和对数据结构222的开始的引用,字段258包含该开始地址.三.data uri schema将文件 ...
- 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.. ...
最新文章
- 云原生解决什么问题?
- openshift harp.js heroku react-router 4
- python在财务领域的应用-浅谈财务智能化在实际工作中的运用
- linux下如何修改weblogic console登陆的用户名和密码
- 简单程序跟踪调试方式
- jMeter 里如何调用函数 function
- linux美化原理,x-window字体原理及美化
- 《C++ Primer 5th》笔记(8 / 19):IO库
- 互联网金融--支付结算平台的测试
- Unity采用Forge Networking Remastered数据的远程传输Basic Moving Cube Example
- 2022年SQL经典面试题总结(带解析)
- 关于Axure原型在Axure share上的尺寸问题。
- HTML中 常见的浏览器内核有哪些,主流浏览器的内核以及内核前缀是什么?
- python夜曲编程_夜曲编程——我毕业了!!!
- 基于SNMP数据采集模块的设计和实现2
- Hadoop 启动 HDFS DataNode 时报错:Invalid dfs.datanode.data.dir
- 2020移动apn接入点哪个快_最新联通上网卡APN的设置方法
- 【git】git下拉项目Pulling is not possible because you have unmerged files解决方案
- 程序员的高逼格头像——自制八爪鱼少年
- 头脑王者服务器维护,头脑王者请求超时怎么解决 头脑王者查询服务器失败怎么回事...
热门文章
- 原码的一位乘法和补码的一位乘法对比
- 1109 Group Photo (25 分)【难度: 一般 / 知识点: 模拟 排序】
- Acwing第 16 场周赛【未完结】
- JVM堆新生代分配比例
- Zookeeper集群搭建伪分布式
- centos 升级mysql5.6_centos6.9升级mysql5.1到mysql5.6
- 【数据结构-排序】1. 图解插入排序三种实现(插入排序/折半排序/希尔排序)
- 在国企当程序员是什么体验?
- hibernate教程--持久化类状态
- 数据结构与算法-排序与查找(java描述)