OGNL表达式语言
<o:p></o:p>
一 常量
<o:p></o:p>
Char
|
‘a’
|
String
|
‘hello’ 或 “hello”
单个字符 /”a/”
|
Boolean
|
true | false
|
Int
|
123
|
<o:p></o:p>
注意:string可以用单引号也可以用双引号。但是单个字母 如’a’与”a”是不同的,前者是char, 后者是string。
<ww:property value=”\”a\””> 或<ww:property value’”a”’>
<o:p></o:p>
二 操作符号
+
-
*
/
mod
|
1+1 ‘hello’+’world’
<o:p></o:p>
|
++ --
|
foo++
|
== !=
|
<o:p></o:p>
|
in not in
|
foo in aList
|
= 赋值
|
foo=1
|
<o:p></o:p>
三 方法调用
class Muppet{
int fun();
}
调用:fun()-10
<o:p></o:p>
四 访问静态方法和变量
@some.pkg.SomeClass@CONSTANTS
@some.pkg.SomeClass@someFun()
<o:p></o:p>
五 context
ActionContext().getContext().getSession().get(“kkk”)
|
#session.kkk
|
ActionContext().getContext().get(“person”)
|
#person
|
# 符号相当于ActionContext.
ActionContext 中的主要对象: parameters, attr, request, session, application
<o:p></o:p>
六 集合操作
list & array访问
list.get(0) array[0]
|
list[0] array[0]
|
list.get(0).getName()
|
list[0].name
|
list.size() array.length
|
list.size array.length
|
list.isEmpty()
|
list.isEmpty
|
List list = new ArrayList()
list.ad(“foo”); list.add(“bar”);
|
{“foo”, “bar”}
{1,2,3}
|
<o:p></o:p>
Map
map.get(“foo”)
|
map[‘foo’] 或 map.foo
|
map.get(1)
|
map[1]
|
Map map = new HashMap()
map.put(“k1”, “v1”); map.put(“k2”,”v2”);
|
#{“k1”:”v1”, “k2”:”v2”}
|
<o:p></o:p>
<o:p></o:p>
<o:p></o:p>
七 筛选 与 投影
筛选 collection.{? expr }: #this 代表当前循环到的object
投影 collection.{ expr }
<o:p></o:p>
children.{name}
|
(投影)得到 Collection<String> names, 只有孩子名字的list
|
children.{?#this.age>2}
|
(筛选)得到 collection<Person> age>2的记录
|
children.{?#this.age<=2}.{name}
|
先筛选再投影
|
children.{name+’->’+mother.name}
|
(筛选)得到元素为 str->str 的集合
|
<o:p></o:p>
NOTE : #的三种用途
1. 引用 ActionContext 中的object #person
2. 动态创建map #{1:’a’, 2:’b’}
3. 对集合进行筛选(#this) #this
<o:p></o:p>
分享到:
相关推荐
### OGNL表达式的理解和应用 #### 一、OGNL简介与基本概念 OGNL(Object-Graph Navigation Language)是一种强大的表达式语言,用于获取和设置Java对象的属性。它是Struts2框架中的默认表达式语言,同时也被广泛...
### JS:ognl表达式详解 #### 一、OGNL表达式概述 OGNL (Object-Graph Navigation Language) 是一种强大的表达式语言,用于获取和设置 Java 对象的属性。它最初是由 John Rose 和 Luke Blanshard 开发,并被广泛...
1. **基础语法**:OGNL表达式的格式通常为`object.property`或`object[index]`,用于访问对象的属性或数组/集合的元素。例如,`user.name`将获取名为`user`的对象的`name`属性。 2. **动态属性**:OGNL支持动态属性...
因此,开发者应使用Struts2的安全配置选项,如禁用不安全的OGNL表达式,或者使用`@SkipValidation`注解来限制某些Action方法的OGNL表达式执行。 总结来说,Struts2中的OGNL表达式是连接模型和视图的关键工具,它...
这篇深入学习的文章主要探讨了OGNL表达式的原理和使用。 首先,我们来理解一下OGNL是什么。OGNL是一种强大的表达式语言,允许开发者通过简单的字符串表达式来访问和修改对象图。在Struts2中,OGNL用于在Action和...
struts2 中 OGNL表达式的使用struts2 中 OGNL表达式的使用
Struts 2默认的表达式语言是OGNL,原因是它相对其它表达式语言具有下面几大优势: 1、 支持对象方法调用,如xxx.doSomeSpecial(); 2、支持类静态的方法调用和值访问,表达式的格式为@[类全名(包括包路径)]@...
1. **表达式语法**:OGNL表达式通常由对象引用、属性访问、方法调用和运算符组成。例如,`user.name`表示访问用户对象的name属性,而`list[0].title`则表示访问列表的第一个元素的title属性。 2. **上下文(Context...
本篇文章将详细探讨Struts2中的OGNL表达式语言以及标签库。 **OGNL(对象图导航语言)** OGNL是一种强大的表达式语言,它允许开发者通过简洁的语法来访问和操作对象的属性。在Struts2框架中,OGNL扮演着至关重要的...
在本案例中,我们将深入探讨OGNL表达式的用法及其在Struts2中的应用。 首先,OGNL是一种灵活的表达式语言,允许开发者访问和操作对象图。它的核心特性包括属性访问、方法调用、集合操作、类型转换等。例如,`user....
Struts2 OGNL表达式是Java Web开发中一个重要的概念,它是一种强大的对象图形导航语言(Object-Graph Navigation Language)。在Struts2框架中,OGNL被广泛用于视图层,作为数据绑定的主要手段,使得开发者能够方便...
在本资源“OGNL表达式2讲”中,我们将深入探讨OGNL的使用,特别是针对各种常用的标签和实际应用案例。这个压缩包包含一个名为“OGNL”的文件,可能是一个文档或代码示例,用于辅助理解讲解内容。 1. **OGNL基础** ...
“$”符号在Struts2中主要用作OGNL表达式的起始标记,在模板文件(如JSP页面)中,它用于指示Struts2框架应该解析为OGNL表达式。 1. **模板文件中的应用**: - 示例:`reg.ageRange = $ {min} 到 $ {max}` - 解释...
NULL 博文链接:https://huguifuture.iteye.com/blog/761843
Struts2 OGNL表达式是Java开发中一个重要的知识点,尤其在Web应用程序设计中扮演着核心角色。OGNL(Object-Graph Navigation Language)是一种强大的表达式语言,它被Struts2框架广泛用于视图层与模型层之间的数据...
这个“struts2-OGNL表达式测试”可能是一个测试项目或代码示例,旨在演示如何在Struts2应用中使用OGNL表达式。 OGNL是Struts2的核心组件之一,它允许开发者通过简单的字符串表达式来获取或设置对象的属性。这使得视...
下面我们将深入探讨如何使用OGNL表达式及其在示例代码中的应用。 首先,让我们看看提供的示例代码片段。这段代码是一个基于JSP的Struts2应用,展示了如何使用OGNL表达式来访问不同范围内的属性(request、session、...
struts2 OGNL表达式使用 OGNL(Object-Graph Navigation Language)是对象图导航语言,允许开发者在Struts2应用程序中访问和操作对象及其属性。下面是OGNL表达式的使用方法: 访问基本属性 1. 访问值栈中action的...
本文将深入探讨Struts2中的OGNL表达式,ActionContext以及valuesStack。 首先,OGNL表达式是Struts2中不可或缺的一部分,它允许开发者以一种声明式的方式访问和修改对象的属性。比如,`myBean.getMyProperty()`这样...