`
yunzhongzi
  • 浏览: 13948 次
  • 性别: 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入门框架搭建需要的jar

    struts2入门框架搭建需要的jar,包含log4j,struts2-core-2.5,ognl-3.1.15

    Struts2入门教程(全新完整版)

    2.OGNL入门 24 3.普通方法访问 24 4.静态方法访问 24 5.默认类Math的访问 24 6.调用普通类的构造方法 25 7.集合对象初步 25 8.集合对象进阶 25 9.N语法top语法 26 10.获取Stack Context中的信息 26 11.总结$ # %的...

    java从入门到精通70个PPT

    javaPPT 从入门到精通 从基础到框架 70个PPT 1.初识java 2.变量、数据类型和运算符和表达式 3运算符和程序流程结构 4.数组 5.类和对象 6.字符串 7.封装,继承,多肽 8.接口与抽象类 9.java集合类 10.jdbc 11 html...

    Struts2 in action中文版

    1.2.2 为什么使用框架 8 1.3 Struts 2框架 9 1.3.1 Struts 2简史 9 1.3.2 Struts 2概览:MVC模式 10 1.3.3 Struts 2的工作原理 12 1.4 小结 14 第2章 初识Struts 2 16 2.1 声明性架构 16 2.1.1 两种配置 16 2.1.2 ...

    Java Web编程宝典-十年典藏版.pdf.part2(共2个)

    9.2.2 Struts2框架中的OGNL 9.2.3 操作普通的属性与方法 9.2.4 访问静态方法与属性 9.2.5 访问数组 9.2.6 访问List、Set、M印集合 9.2.7 投影与选择 9.3 Struts2的标签库 9.3.1 数据标签的应用 9.3.2 控制标签的应用...

    Struts2入门教程。包括jquery集成等。入门必看

    第 1章 STRUTS2入门................................................................................................................................................3 第 2章STRUTS2晋级.....................

    百度地图开发java源码-springboot-crawler:springboot入门,爬虫项目实战

    Lombok、okHttp、jwt、gson序列化与反序列化、ognl(对象图导航,简化json对象解析) 其它:QQ登录、微信扫码登录 三、开发环境 3.1、工具与环境 IDEA 2018.3.5 Maven 3 JDK8 Mysql 5.7+ Win10 64位系统 四、项目...

    Struts2电子课件

    Struts2的讲义 1、入门及基本配置 2、类型转化 3、输入校验 4、校验框架 5、拦截器 6、文件上传与下载 7、国际化 8、深入了解struts 9、ognl

    (2.0版本)自己写的struts2+hibernate+spring实例

    全当给所有打算使用struts2却没有接触过的人一个入门而已.我也是初看.才2天而已.所以各位高手就不要笑话了.愿大家都能成为高手. <br> 项目发布以后的第一个页面是登陆.后台代码没有写相关的验证代码.并不是...

    springmybatis

    (读者注:其实这个应该叫做很基础的入门一下下,如果你看过Hibernate了那这个就非常的简单) (再加一条,其实大家可以看官方的教程更好些:http://mybatis.github.io/mybatis-3/,而且如果英文不是很好的那就看...

    AnyFo - Struts 2_1爆胎易筋丸.pdf

    1 入门.....................................................................................................................................4 1.1 环境搭建..................................................

Global site tag (gtag.js) - Google Analytics