更新时间:2021-08-11 12:50:34 来源:极悦 浏览730次
简单的出现在JSP页面中,就是Page、Request、Session、Application四个作用域中的值。
如果在STRUTS环境中,可以从上面四个范围的值中取值。
特点1:${name},在值栈中的值的查找顺序是:先从对象栈中取出,取出到终止处,否则取出到MAP中。
特点2:对象栈中的顺序是,先在model中找到Name,找到终止,否则,在action中查找是否有NAME。全局变量。
特点三:${#name},没有##。
特点四:如果放在对象栈中的是自定义对象,可以直接去对象的属性,没有这样的${Object.property}
1.从后台读取传入的值
%{#name}:从值栈中表示Map的值
%{name}:从值栈中表示对象栈的值
%{request.name} : 表示来自请求域的值
2.构建数据
A、构建MAP<S:Iterator Var = "Map" Value = "#{'Key1': 'Value1', 'Key2': 'Value2'}" />
B、构建列表<s: iperator var = "list" value = "{'one', 'two', 'three'}>
< s:iterator value ="#request.deptList" var ="dept" >
< div class ="splist" style ="line-height:40px; border-bottom:1px solid #ccc;" >
< div class ="tbm1" >< s:property value ="#dept.depname" /></ div >
< div class ="tbm2" > ${dept.depcode} </ div >
< div class =" tbm3" >< s:property value ="#dept.address" /></ div >
<="#dept.phone" /></ div >
</ div >
</ s:iterator >
区别区别:OGNL通常与Struts 2结合使用,如 Struts页面不能单独使用,EL可以使用${sessionscope.username}
页面价值差异:
OGNL是Struts 2 默认表达语言。是Object Graphic Navigation Language的缩写,是一个开源项目。
1. # # 符号有三种用途。
(1)访问非根对象属性,如示例中的#session.msg表达式,由于Struts 2中栈被认为是根对象,所以在访问其他非根对象时需要加上#前缀。其实,#aText.getContext(); # Session.msg 表达式等价于actionContext.getContext()。获取会话()。GetAttribute(“味精”)。
(2)用于过滤和投影,如示例中的示例。{? # this.age> 20}。
(3) 用于构造MAP,如示例中的#{'foo1':'bar1','foo2':'bar2'}。
2. %symbol %符号的作用是计算属性为字符串类型时OGNL表达式的值。如下代码所示:构建MAP
3. $符号
$ 符号有两个主要用途。在国际资源文件中,引用OGNL表达式,如国际资源文件中的代码:REG.AGERANGE =国际化资源信息:年龄必须在${min}和${max}之间。在Struts 2框架的配置文件中引用OGNL表达式,如以下代码段:
< validators >
< field name =”intb”>
<field-validator type =”int”>
<param name =”min”>10</param>
<param name =”max”>100</param>
<message > BAction-Test 检查:数字必须是 ${min} 到 ${max}!</ message >
</ field-validator >
</ field >
以上就是极悦小编介绍的"OGNL表达式和EL表达式的区别",希望对大家有帮助,想了解更多可查看EL表达式。极悦在线学习教程,针对没有任何Java基础的读者学习,让你从入门到精通,主要介绍了一些Java基础的核心知识,让同学们更好更方便的学习和了解Java编程,感兴趣的同学可以关注一下。
0基础 0学费 15天面授
Java就业班有基础 直达就业
业余时间 高薪转行
Java在职加薪班工作1~3年,加薪神器
工作3~5年,晋升架构
提交申请后,顾问老师会电话与您沟通安排学习