<ol>
<li>访问值栈中的action的普通属性: username = <s:property value="username"/> </li>
<li>访问值栈中对象的普通属性(get set方法):<s:property value="user.age"/> | <s:property value="user['age']"/> | <s:property value="user[\"age\"]"/> | wrong: <%--<s:property value="user[age]"/>--%></li>
<li>访问值栈中对象的普通属性(get set方法): <s:property value="cat.friend.name"/></li>
<li>访问值栈中对象的普通方法:<s:property value="password.length()"/></li>
<li>访问值栈中对象的普通方法:<s:property value="cat.miaomiao()" /></li>
<li>访问值栈中action的普通方法:<s:property value="m()" /></li>
<hr />
<li>访问静态方法:<s:property value="@com.bjsxt.struts2.ognl.S@s()"/></li>
<li>访问静态属性:<s:property value="@com.bjsxt.struts2.ognl.S@STR"/></li>
<li>访问Math类的静态方法:<s:property value="@@max(2,3)" /></li>
<hr />
<li>访问普通类的构造方法:<s:property value="new com.bjsxt.struts2.ognl.User(8)"/></li>
<hr />
<li>访问List:<s:property value="users"/></li>
<li>访问List中某个元素:<s:property value="users[1]"/></li>
<li>访问List中元素某个属性的集合:<s:property value="users.{age}"/></li>
<li>访问List中元素某个属性的集合中的特定值:<s:property value="users.{age}[0]"/> | <s:property value="users[0].age"/></li>
<li>访问Set:<s:property value="dogs"/></li>
<li>访问Set中某个元素:<s:property value="dogs[1]"/></li>
<li>访问Map:<s:property value="dogMap"/></li>
<li>访问Map中某个元素:<s:property value="dogMap.dog101"/> | <s:property value="dogMap['dog101']"/> | <s:property value="dogMap[\"dog101\"]"/></li>
<li>访问Map中所有的key:<s:property value="dogMap.keys"/></li>
<li>访问Map中所有的value:<s:property value="dogMap.values"/></li>
<li>访问容器的大小:<s:property value="dogMap.size()"/> | <s:property value="users.size"/> </li>
<hr />
<li>投影(过滤):<s:property value="users.{?#this.age==1}[0]"/></li>
<li>投影:<s:property value="users.{^#this.age>1}.{age}"/></li>
<li>投影:<s:property value="users.{$#this.age>1}.{age}"/></li>
<li>投影:<s:property value="users.{$#this.age>1}.{age} == null"/></li>
<hr />
<li>[]:<s:property value="[0].username"/></li>
</ol>
<s:debug></s:debug>
分享到:
相关推荐
Struts2 OGNL语言学习笔记 OGNL(Object-Graph Navigation Language)是 Struts 2 中的一种表达式语言,主要用于简化 JSP 页面中的编码,使页面与后台代码分离。下面是 OGNL 语言的主要特点和用法: 1. 支持对象...
在示例代码中,`<s:property>`标签使用OGNL表达式`#request.req`、`#session.sess`和`#application.app`分别获取了Request、Session和Application范围内的属性值。这展示了OGNL如何灵活地访问不同级别的数据。 其次...
通过深入学习和实践《Ognl_JSTL_学习笔记.doc》,开发者可以熟练掌握这两种技术,提高在Java Web开发中的效率和代码质量。在实际工作中,理解并灵活运用Ognl和JSTL,能够更好地设计和实现交互丰富的Web应用。
开发过程中,有一些工具可以帮助我们更好地使用OGNL,例如表达式测试工具,可以在不涉及整个项目环境的情况下测试OGNL表达式的正确性。还有一些IDE插件提供语法高亮和自动完成,提升开发效率。 总的来说,OGNL是...
在这个学习笔记和测试源代码中,我们将专注于Struts2中的OGNL(Object-Graph Navigation Language)表达式,这是一种强大的表达式语言,用于在Java对象图中导航和操作数据。 OGNL是Struts2框架的核心部分,它允许...
这个压缩包包含了OGNL的源代码和作者的个人笔记,对Java开发者尤其是对OGNL感兴趣的爱好者来说,是很好的学习资源。 首先,我们来了解一下OGNL的基本概念。OGNL的核心功能是提供一种简洁、灵活的方式来访问和操作...
在Struts2中,OGNL还被用作默认的表示层语言,这意味着在视图层(如JSP)可以直接使用OGNL表达式来动态地显示数据。例如,`<s:property value="%{user.name}" />`会输出`user`对象的`name`属性值。这种特性使得...
例如,`<s:property value="xx" />`标签中的`value="xx"`就是一个OGNL表达式,用于显示对象`xx`的值。 2. OGNL的关键符号: 在OGNL中,`#`、`%`和`$`有特定含义: - `#`:用于访问上下文对象,例如`#request`、`#...
Struts2是在Struts1的基础上进行改进的,吸取了其他框架的优点,如WebWork,提供了更强大的拦截器、OGNL表达式语言等特性。 1.5 衡量一个框架的标准 包括易用性、灵活性、性能、社区支持、文档完善度等。 1.6 ...
在"【张冰Struts2学习笔记】0202_Struts2的三种接收用户输入的方法"中,我们主要探讨的是如何在Struts2中有效地获取并处理用户提交的数据。以下是对这三种方法的详细解析: ### 1. 使用Action属性 Struts2的核心是...
### Struts 学习笔记(4):深入理解 OGNL 表达式与 Struts2 标签 #### 一、OGNL 表达式简介 **OGNL**(Object Graph Navigation Language)是一种功能强大的表达式语言,在 Struts2 框架中扮演着非常重要的角色。...
13. ** strut2四天笔记**:这份学习笔记可能涵盖了以上所有知识点,包括如何创建Action,配置struts.xml,使用OGNL表达式,处理异常,以及实践中的各种技巧和最佳实践。 在四天的学习过程中,你应该通过实践和理解...
通过Ognl表达式,可以访问Action类的属性,即使属性名称相同,Ognl会从栈顶开始查找,找到第一个匹配的属性值。 6. **数据存取**: 使用`#`符号在Ognl表达式中表示Map集合,这样可以明确区分对象栈和Map。例如,`#...
### Struts2 学习笔记 #### 一、Struts2 概览及发展历程 **Struts2** 是一个开源的 Java Web 应用框架,它继承了 **Struts1** 的优秀特性,并在此基础上进行了大量的改进和扩展。**Struts2** 的发展可以追溯到 **...
Struts2作为Java Web开发的重要框架,其强大的MVC实现、OGNL表达式以及丰富的插件机制,使得开发者能够高效地构建Web应用程序。通过学习Struts2,我们可以更好地理解和实践MVC模式,提高项目的可维护性和扩展性。在...
6. **OGNL表达式**:OGNL是一种强大的表达式语言,用于在Struts2中获取和设置对象属性。在视图层,开发者可以使用OGNL表达式来动态地访问和操作值栈中的数据。 7. **Tiles插件**:Struts2.1.8支持Tiles框架,允许...
它继承了WebWork的动态方法调用、OGNL表达式语言等特性,同时改进了Struts1的不足,如Action类的配置和异常处理。 1.4 衡量一个框架的标准 一个优秀的框架应具备易用性、灵活性、性能、社区支持和文档质量等特点。...
Struts框架强调可重用性和可扩展性,它提供了许多内置的拦截器和插件,例如tiles插件用于页面布局,ognl表达式语言用于数据绑定,以及struts2-dojo-plugin来集成Dojo库进行富客户端开发。这些知识点在文档中会有详细...