struts2中ognl(Object Graph Navigation Laguage)的使用
一,访问普通的属性和方法
1,访问值栈中的action的普通属性值
<s:property value="name"/>
2,访问值栈中对象的普通属性(get set方法)
user.xxx只有传,才会构造,
想初始化domain model,
可以自己new,User=new User();Use u = new User(9);
也可以传参数值,?user.age=9
但这时候需要保持参数为空的构造方法public User(){......}
<s:propery value="user.age"/>
3,访问值栈中对象的普通方法 password.length()
4,访问值栈中对象的普通方法 cat.miaomaio()
5,访问值栈中action的普通方法 m()
二,访问静态的属性和方法
1,访问静态的属性
@类名.@属性
2,访问静态的方法
@类名.@方法名
3,访问Math类的静态方法:
<s:property value="@@max(2,3)" />
三,访问普通类的构造方法:
访问普通类的构造方法:<s:property value="new com.struts2.ognl.dao.User(8)"/>
四,访问集合类
访问List:<s:property value="users"/><br/>
访问List中某个元素:<s:property value="users[1]"/><br/>
访问List中元素某个属性的集合:<s:property value="users.{name}"/><br/>
访问List中元素某个属性的集合中的特定值:
<s:property value="users.{name}[0]"/> | <s:property value="users[0].name"/><br/>
访问Set:<s:property value="dogs"/><br/>
访问Set中某个元素:<s:property value="dogs[1]"/><br/>
访问Map:<s:property value="dogMap"/><br/>
访问Map中某个元素:<s:property value="dogMap.dog101"/> | <s:property value="dogMap['dog101']"/> | <s:property value="dogMap[\"dog101\"]"/><br/>
访问Map中所有的key:<s:property value="dogMap.keys"/><br/>
访问Map中所有的value:<s:property value="dogMap.values"/><br/>
访问容器的大小:<s:property value="dogMap.size()"/> | <s:property value="users.size"/> <br/>
五,投影(过滤)
投影(过滤):<s:property value="users.{?#this.age==1}[0]"/>
投影:<s:property value="users.{^#this.age>1}.{age}"/>
投影:<s:property value="users.{$#this.age>1}.{age}"/>
投影:<s:property value="users.{$#this.age>1}.{age} == null"/>
六,通过[]访问
[]:<s:property value="[0]"/><br/>
<s:property value="[0].user.name"/>
分享到:
相关推荐
在这个实例中,我们将深入探讨如何在Struts2中使用OGNL来获取Servlet对象的值、筛选集合中的对象,以及理解OGNL表达式的生命周期。 首先,让我们了解OGNL的基本语法。OGNL允许我们通过点号(.)和方括号([])来...
struts2 中 OGNL表达式的使用struts2 中 OGNL表达式的使用
其中,OGNL(Object-Graph Navigation Language)是Struts2中的核心表达语言,用于在视图层与模型层之间传递数据。在深入理解OGNL的源码之前,我们首先需要了解OGNL的基本概念和用法。 OGNL是一种强大的表达式语言...
这篇博客文章可能详细探讨了如何在Struts2中使用OGNL来传递和操作数据。 OGNL是Struts2的核心组件之一,它允许开发者通过简单的字符串表达式来访问和修改对象的属性,甚至可以处理复杂的对象结构。以下是一些关于...
这个项目旨在帮助开发者理解和学习如何在Struts2中使用OGNL来操纵对象和数据。OGNL是Struts2中一个重要的组件,它允许在视图层和控制层之间传递和操作数据。 首先,我们来看`.classpath`、`.mymetadata`、`.project...
OGNL(Object-Graph Navigation Language)是Struts2框架中的一个重要组件,用于在Web应用中访问和操作Java对象的属性,调用其方法,以及执行类型转换等操作。 OGNL是对象图导航语言的缩写,它是一种功能强大的...
在Struts2中,OGNL用于处理动作类的属性到JSP页面的传递,以及用户输入到动作类的绑定。 首先,让我们了解OGNL的基本语法。OGNL表达式通常包含两个部分:对象引用和属性访问。例如,`user.name`表示获取名为`user`...
OGNL(Object-Graph Navigation Language)是一种基于 Java 的表达式语言,Struts2 框架中使用 OGNL 来访问和操作 ValueStack 中的对象。在 Struts2 中,OGNL 是一个强大的工具,允许开发者访问和操作 ValueStack 中...
在Struts2中,OGNL(Object-Graph Navigation Language)是一种强大的表达式语言,用于获取和设置对象的属性。这篇博客将深入探讨OGNL在Struts2中的应用,并通过案例"TextOgnl"来展示其工作原理。 一、OGNL的基本...
在Struts2中,OGNL被广泛用于访问Action中的属性,以及在视图层(如JSP)中绑定和操作数据。 首先,OGNL使得访问对象属性变得非常直观。它支持点符号(.)和方括号([''])两种方式来访问属性。例如,如果在Action...
以上内容仅是OGNL在Struts2中使用的一个简单介绍,实际上,OGNL的功能远不止这些。在深入学习和使用Struts2时,掌握OGNL的高级特性,如表达式操作、上下文变量、类型转换等,将有助于提高开发效率和代码的灵活性。在...
Struts2将ActionContext与OGNL结合,使得请求参数可以直接在表达式中使用。 5. **安全特性**:在Struts2中,OGNL的不当使用可能导致安全漏洞,如著名的Struts2 OGNL注入攻击。源代码中包含了对这种风险的防护措施,...
在Struts2中使用OGNL表达式主要涉及以下几种符号:“#”、“%”和“$”。 ##### 1. “#”符号的使用 - **访问Struts2上下文**: - `#`可用于访问当前的`ActionContext`,如`#ActionContext.getContext()`。 - ...
在压缩包文件`struts-ognl.asta`中,可能包含了一些示例或测试用例,用于演示Struts2中PropertyAccessor的使用和功能。你可以通过分析这些文件来更深入地理解PropertyAccessor的工作原理。 总结起来,"struts2对...
这个“struts2-OGNL表达式测试”可能是一个测试项目或代码示例,旨在演示如何在Struts2应用中使用OGNL表达式。 OGNL是Struts2的核心组件之一,它允许开发者通过简单的字符串表达式来获取或设置对象的属性。这使得视...
- `$`:用于标识EL表达式,同时在Struts2配置中使用OGNL表达式时也会用到。 - `%`:用于将OGNL表达式转换为普通字符串或者将普通字符串转换为OGNL表达式。 - `#`:用于获取`ActionContext`中的数据或在OGNL表达式中...
在Struts2中,OGNL(Object-Graph Navigation Language)是一种强大的表达式语言,用于获取和设置对象的属性。这篇博客将深入探讨OGNL表达式的理解和用法。 OGNL的全称是对象图导航语言,它的主要功能是在对象模型...