OGNL(Object-Graph Navigation Language)
1.访问值栈中的普通属性:
<s:property value="xxx"/>
<s:property value="xxx.xx"/>
直接写值栈中的键名称或加上属性。访问属性的前提是这个对象必须有get/set方法。
聚合关系的对象也可以访问或访问其属性。
2.访问对象的普通方法
如:
<s:property value="name.length()"/>
<s:property value="dog.wangwang()"/>
<s:property value="m()"/>
3.访问静态方法或属性
必须在配置文件中加入常量配置
<constant name="struts.ognl.allowStaticMethodAccess" value="true"/>
访问静态方法,如:
<s:property value="@com.xx.xx.lei@fangfa()"/>
访问静态属性,如:
<s:property value="@com.xx.xx.lei@XXX"/>
都是@号加类全称+方法名或属性名。
访问Math类的静态方法:<s:property value="@@max(2,3)"/>
4.访问普通类的构造方法
如:
<s:property value="new com.xx.xx.User(8)"/>
5.访问集合
如:
访问List或数组:
<s:property value="users"/>
<s:property value="users[1]"/>
访问List中元素某个属性的集合:
<s:property value="users.{age}"/>就是在users集合中,拿出user的属性age,组成
一个新的集合。
<s:property value="users.{age}[0]"/>就是访问第一个元素。
6.访问Set,不能取下标,因为Set是无序的。
7.访问map:
访问Map中的某个元素
<s:property value="xxmap.keyname"/>
或<s:property value="xxmap['keyname']"/>
或<s:property value="xxmap[\"keyname\"]"/>
访问map中所有key:
<s:property value="xxmap.keys"/>
访问map中所有value:
<s:property value="xxmap.values"/>
访问容器的大小
<s:property value="xxmap.size()"/>
或<s:property value="xxmap.size"/>
8.投影:
投影(过滤):
<s:property value="users.{?#this.age==1}"/>
问号为正则表达式内容,就是只要是匹配的都包括。就是这个users集合,循环拿出每一个对象,看这个对象的age属性是否等于1的,组成一个
集合。如:
<s:property value="users.{?#this.age==1}.{age}[0]"/>拿出集合中第一项。
<s:property value="users.{?#this.age==1}.{age}"/>拿出集合中age的集合。
投影2:<s:property value="users.{^#this.age>1}"/>
小尖号代表头一个,就是拿出users过滤后的集合中的第一个user对象的集合,注意,是集合。
投影3:<s:property value="users.{$#this.age>1}"/>
$号代表尾一个,就是拿出users过滤后的集合中的最后一个个user对象的集合,注意,是集合。
9.用中括号访问值栈元素:
<s:property value="[0]"/>
就是访问值栈中,从栈顶开始查找元素。
分享到:
相关推荐
### Struts2.1框架深度解析与学习指南 #### 搭建Struts2.1环境 Struts2是Apache组织开发的一个开源Web框架,它继承了Struts1的优良特性,同时在很多方面进行了改进,使其更加轻量级、灵活、强大。Struts2.1版本相...
### Struts2学习笔记知识点概览 #### 一、环境搭建 **1.1 Struts2简介** - **Struts2概述**:Struts2是一个开源的MVC框架,它结合了Struts 1.x、WebWork和其他一些框架的优点。Struts2的主要目标是简化Web应用程序...
### Struts2学习笔记知识点详解 #### 一、Struts2框架的基本引入步骤 ##### 1. 导入Struts2相关Jar包 在引入Struts2框架时,首先需要将Struts2的相关Jar包导入到项目的类路径中。这些Jar包通常包括核心库以及其他...
### Struts2 学习重点知识点总结 #### 一、Struts2 概念与架构 **1.1 Struts2 简介** - **定义**:Struts2 是 Apache 组织提供的一个基于 MVC 架构模式的开源 Web 应用框架。 - **核心**:Struts2 的核心其实是 ...
以上内容是Struts2学习笔记的概述,涵盖了Struts2的基础概念、发展历程、使用方法以及核心组件OGNL的介绍。深入学习Struts2将有助于提升Java Web开发能力,更好地理解和构建MVC架构的应用程序。
在深入探讨Struts2的学习笔记之前,先来理解它的核心概念。 **1. Struts2依赖的JAR包** Struts2的运行离不开一系列的依赖库,包括: - `struts2-core-2.1.6.jar`:这是Struts2的核心库,包含了Struts2框架的主要...
至于Struts2.0和Struts2.1的区别,虽然这里没有具体说明,但通常更新版本会修复已知问题,增加新功能,提高性能,并可能引入一些不向后兼容的变化。例如,从Struts2.0到Struts2.1可能会改进Action的生命周期,增强...
在探讨Struts2的学习心得之前,我们先来分析一下Struts2与Struts1之间的区别。 ##### 1.1 架构设计 - **Struts1**:采用MVC(Model-View-Controller)架构模式,其中控制器是由`ActionServlet`来实现的,该控制器...
本笔记将深入探讨Struts2的核心概念、发展历程、使用方法以及与OGNL(Object-Graph Navigation Language)的结合应用。 **一、Struts2概述** 1.1 为什么要用Struts 在Java Web开发中,Struts2作为MVC框架,能够...
### Struts2框架学习笔记整理 #### 一、Struts2框架概述 ##### 1.1 Struts2框架定义 Struts2是一个基于MVC(Model-View-Controller)架构模式的开源Java web应用框架,它能够帮助开发者构建可扩展且易于维护的...
在本篇笔记中,我们将深入探讨Struts2的核心概念和使用方法。 **一、Struts2概述** 1.1 为什么要用Struts? 在传统的JSP开发中,模型与视图、控制器的职责混杂,导致代码维护困难。Struts2作为MVC框架,将业务逻辑...
这是从Struts2.1版本开始引入的,之前版本使用的是`FilterDispatcher`。过滤器映射通常设置为拦截所有请求,即`<url-pattern>/*</url-pattern>`,这样Struts2就能处理所有的HTTP请求。 接下来,笔记提到了Struts2的...
### Struts学习笔记 #### 一、Struts2框架简介 Struts2是一个开源的、用于开发Java EE Web应用程序的MVC框架。它基于Struts 1进行了改进,提供了更加强大和灵活的功能,比如拦截器、动态方法调用、类型转换等。...