Chinaunix首页 | 论坛 | 博客
  • 博客访问: 285792
  • 博文数量: 124
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 21
  • 用 户 组: 普通用户
  • 注册时间: 2016-08-20 14:44
文章分类

全部博文(124)

文章存档

2020年(1)

2018年(2)

2016年(2)

2015年(6)

2014年(10)

2013年(23)

2012年(7)

2011年(18)

2010年(15)

2009年(8)

2007年(8)

2006年(23)

2005年(1)

我的朋友

分类:

2010-04-11 22:46:14

使用ognl时的一个特殊需求是到application中读取一个配置量。而这个配置是一个hashmap。其存放于application的attribute是“type”。
所以用#application['type']可以取到该hashMap。
接下来想取一个key为“1”的对象。
此处可以使用
#application['type']["1"]得到,注意此处如果key只有一个字母或数字,最好用",告诉系统这是一个字符串。否则可能取不到,如果此时的"1"是在一个变量中,还可以写为:
#application[”type“][variable_name].


2由于【】是哈希和数组同时使用的。所以当哈希的key是integer时,就比较容易混,系统也处理不了。此时对与integerkey的hash应该用get方法,而不是【】;此种情况出错时会打印堆栈,可以找到源码看看,顺便理解源码!

ognl中变量的存放
ognl表达式访问的变量都存放在ValueStack变量中,该对象又存放与request的struts.valueStack变量中。valueStack中的变量分为两类,1. root对象中,该对象是一个堆栈。2.存放于该对象中的values变量中,该对象是一个hashMap。所以当要访问的对象存在于values对象中时,需要“#”来访问,而存放于root中的对象则可以直接用名字访问。

 

阅读(750) | 评论(0) | 转发(0) |
0

上一篇:2.1

下一篇:corba 入门

给主人留下些什么吧!~~