`
yunzhongzi
  • 浏览: 14048 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

OGNL框架的使用入门(二)

阅读更多
        OGNL可以用索引来访问数组,比如表达式abc[1].name,表示取得id为abc的数组的第1维的对象的name属性,注意,OGNL中的数组索引与Java一样,是从0开始的,下面的代码演示了如何访问数组:
Map distObject=new HashMap();
		User[] users=new User[3];
		users[0]=new User();
		users[0].setName("user0");
		users[1]=new User();
		users[1].setName("user1");
		users[2]=new User();
		users[2].setName("user2");
		distObject.put("abc",users);
		Object result = Ognl.getValue("abc[1].name",distObject);//********(1)
		
		System.out.println("***测试数组**********abc[1].name:"+result);
		//输出:***测试数组**********abc[1].name:user1

    OGNL提供了一些特别的索引符号访问数组中的特殊位置,如符号^表示数组的第1维元素,$表示最后一维,|表示中间的元素。表达式abc[^].name,表示取得id为abc的数组的第1维的对象的name属性。下面的代码演示了这些特殊的符号的用法。
		Map distObject=new HashMap();
		User[] users=new User[3];
		users[0]=new User();
		users[0].setName("user0");
		users[1]=new User();
		users[1].setName("user1");
		users[2]=new User();
		users[2].setName("user2");
		distObject.put("abc",users);
		Object result = Ognl.getValue("abc[^].name",distObject);
		System.out.println("***测试数组**********abc[^].name:"+result);
		//输出:***测试数组**********abc[^].name:user0
		result = Ognl.getValue("abc[$].name",distObject);
		System.out.println("***测试数组**********abc[$].name:"+result);
        //输出:***测试数组**********abc[$].name:user2
		result = Ognl.getValue("abc[|].name",distObject);
		System.out.println("***测试数组**********abc[|].name:"+result);
        //输出:***测试数组**********abc[|].name:user1

    OGNL把ArrayList也当作数组,下面的代码演示了OGNL如何访问ArrayList。
		Map distObject=new HashMap();
		List users=new ArrayList();
		User user0=new User();
		user0.setName("user0");
		users.add(user0);
		User user1=new User();
		user1.setName("user1");
		users.add(user1);
		User user2=new User();
		user2.setName("user2");
		users.add(user2);
		distObject.put("abc",users);
		Object result = Ognl.getValue("abc[1].name",distObject);//********(1)
		
		System.out.println("***测试ArrayList**********abc[1].name:"+result);
		//输出:***测试数组**********abc[1].name:user1

    Map可以看作下标为字符串的数组。如果id为abc的map,包含key为"user0"的对象,则表达式abc["user0"]可以访问该对象。下面的代码演示了OGNL如何用用字符串下标访问Map。
		Map distObject=new HashMap();
		Map uMap=new HashMap();
		User user=new User();
		user.setName("user0");
		uMap.put("user0",user);
		user=new User();
		user.setName("user1");
		uMap.put("user1",user);
		user=new User();
		user.setName("user2");
		uMap.put("user2",user);
		distObject.put("abc",uMap);
		Object result = Ognl.getValue("abc['user2'].name",distObject);//********(1)
		
		System.out.println("***测试字符串下标**********abc['user2'].name:"+result);
		//输出:***测试字符串下标**********abc['user2'].name:user2
分享到:
评论
3 楼 javaz 2010-03-16  
学习了。确实很强大。
2 楼 swvincent 2008-12-11  
确实是好东西
1 楼 huyanp 2008-03-27  
[/url][url][/url][url][/url][url][/i][i][/i][i][i][/i]
引用
[b][i]
引用
[list]
[*][list=1]
[*][*][flash=200,200][url][img]
引用
hjjjjj
[/img][/url][/flash] [*][/list] [/list]
[/i][/b]

相关推荐

    struts2框架入门

    为了更好地理解Struts2,你需要学习如何创建Action类、编写struts.xml配置文件、使用Interceptor、处理结果以及理解OGNL的使用。通过阅读提供的"15_学员用书_STRUTS2核心_IMAGE版.pdf",你可以逐步掌握这些概念和...

    学习Ognl 这是为初学Ognl者提供的一个小例子,本人也在学习中,希望通过它能让你认识 Ognl ,送达到入门!!

    Ognl起源于Struts框架,但后来发展成为一个独立的库,广泛应用于许多Java Web应用中,如Spring MVC、Struts2等。Ognl允许开发者用自然的语法来访问和操作对象的属性,执行动态方法调用,甚至进行复杂的表达式计算。 ...

    STRUTS2+ognl

    本文将详细介绍Struts2、Webwork以及Ognl的相关知识点,并提供入门指导。 **Struts2框架** Struts2是在原有的Struts1基础上发展起来的,它整合了Webwork框架的优势,提供了更灵活的控制流和更强大的拦截器机制。...

    OGNL Language Guide 中文版

    #### 二、OGNL的历史 - **起源**: OGNL 最初是为了连接 UI 组件和使用属性的控制器而创建的。 - **发展**: Luke Blanshard 和 Drew Davidson 共同推动了该语言的发展。最初命名为 KVCL (Key-Value Coding Language)...

    struts2入门框架搭建需要的jar

    本文将深入探讨Struts2入门框架搭建过程中需要的核心jar文件及其作用。 1. **struts2-core-2.5.16.jar**:这是Struts2的核心库,包含了框架的主要组件,如Action、Result、Interceptor等。它提供了解析请求、执行...

    struts2开发入门以及webWork开发入门文档

    这里我们将深入探讨这两个框架的入门知识。 1. **Struts2入门** - **框架概述**:Struts2是一个基于MVC设计模式的开源框架,它提供了强大的控制器层,简化了Java Web应用的开发。Struts2强调可插拔性和灵活性,...

    Struts2入门教程.pdf

    #### 二、Struts2框架的特点 - **体系结构**:Struts2采用了MVC(Model-View-Controller)设计模式,清晰地分离了业务逻辑、用户界面和控制逻辑。 - **配置文件**:Struts2通过XML配置文件来管理应用的行为,如...

    struts2入门教程

    ### Struts2入门教程知识点概览 #### 一、Struts2简介 - **起源与发展**:Struts2...以上内容覆盖了Struts2框架的核心概念和技术要点,对于初学者来说,这些知识点可以帮助他们快速入门并掌握Struts2的基本使用方法。

    java框架系列

    4. Spring参考手册.pdf、spring快速入门教程.pdf、Spring开发指南.pdf:这些文档是Spring框架的官方或非官方指南,涵盖了Spring框架的各个方面,从基本的bean配置到高级的特性如Spring Boot、Spring Cloud等。...

    Struts2入门demo

    这个"Struts2入门demo"旨在为初学者提供一个快速理解并实践Struts2框架的起点。以下是对Struts2核心概念和相关知识点的详细说明: 1. **MVC模式**:Struts2是基于Model-View-Controller(MVC)设计模式的,它将业务...

    框架入门学习

    `OGNL`(Object-Graph Navigation Language)是Struts2使用的表达式语言,用于在模型和视图之间传递数据。`Freemarker`则是一个模板引擎,通常用于生成动态HTML页面,它是Struts2中UI标签的模板语言。`Commons-...

    轻松入门之struts2

    Struts2教程系列旨在帮助读者快速入门并掌握Struts2框架的使用,特别适合那些希望在最短时间内了解Struts2最大范围知识的读者。 该教程的内容涵盖了从入门到高级话题的多个方面,包括Struts2的核心概念、表单验证、...

    strut2入门几个小demo

    这个压缩包可能包含了几个简单的Struts2应用实例,比如“Hello, World”程序,展示了如何配置Struts2框架,创建Action类,编写JSP页面以及使用OGNL来显示数据。这些基础的步骤对于初学者理解Struts2的工作原理至关...

    Struts2简介与入门

    对于希望入门Java Web开发的学习者来说,掌握Struts2框架的使用是基础且关键的一步。通过阅读官方文档、学习示例程序、了解各配置文件的作用以及实际编写案例代码,能够帮助学习者快速进入Java Web开发的大门。

    Struts2入门到精通教程.zip

    通过这个"Struts2入门到精通教程",你将能够从零开始学习如何创建一个简单的Struts2应用,逐步深入到使用拦截器、OGNL、Tiles和异常处理等高级特性,最终达到精通Struts2框架的目标。在学习过程中,不断实践和理解每...

    ExtJS_MVC框架的搭建实例

    通过一个简单的例子来演示如何使用SSM + ExtJS MVC框架构建一个Web应用: 1. **需求分析**: 假设我们需要构建一个用户管理系统,包括用户列表展示、添加、编辑和删除等功能。 2. **设计数据库**: 设计数据库表结构...

    S2SH框架整合源代码

    这个框架整合旨在为初学者提供一个易于理解的增删改查(CRUD)功能实现,帮助他们快速入门并掌握这三大框架的协同工作原理。 **Struts2框架** Struts2是基于MVC(Model-View-Controller)设计模式的开源Web应用框架...

    javaweb Struts2 框架搭建方法与空框架模型

    下面将详细介绍Struts2框架的搭建过程、基本概念以及如何使用提供的空白框架模型进行开发。 1. **Struts2框架基础** - **MVC模式**:Struts2遵循MVC设计模式,将应用分为模型、视图和控制器三个部分,分别负责业务...

    struts2入门经典教程

    3. **Ognl(Object-Graph Navigation Language)**:Struts2使用Ognl作为默认的表达式语言,用于在视图层和模型层之间传递数据。Ognl表达式可以方便地访问对象属性和调用方法。 4. **Tiles框架集成**:Struts2支持...

Global site tag (gtag.js) - Google Analytics