OgnlAction.java
//试验4-------
private List<User> users = new ArrayList<User>();
//试验4-------
//试验5-------
private Set<Dog> dogs = new HashSet<Dog>();
//试验5-------
//试验6-------
private Map<String, Dog> dogMap = new HashMap<String, Dog>();
//试验6-------
public OgnlAction(){
//试验4-------
users.add(new User(1));
users.add(new User(2));
users.add(new User(3));
//试验5-------
dogs.add(new Dog("dog1"));
dogs.add(new Dog("dog2"));
dogs.add(new Dog("dog3"));
//试验6-------
dogMap.put("dog100", new Dog("dog100"));
dogMap.put("dog101", new Dog("dog101"));
dogMap.put("dog102", new Dog("dog102"));
}
最后我们给出试验结果:
11.访问List:[user :1, user :2, user :3]
12.访问List中某个元素:user :2
13.访问List中元素某个属性的集合:[1, 2, 3]
14.访问List中元素某个属性的集合中的特定值:1 | 1
15.访问Set:[dog:dog3, dog:dog1, dog:dog2]
16.访问Set中某个元素:
17.访问Map:{dog100=dog:dog100, dog101=dog:dog101, dog102=dog:dog102}
18.访问Map中某个元素:dog:dog101 | dog:dog101 | dog:dog101
19.访问Map中所有的key:[dog100, dog101, dog102]
20.访问Map中所有的value:[dog:dog100, dog:dog101, dog:dog102]
21.访问容器的大小:3 | 3
说明:
1.注意在ongl中花括号可以代表一个集合,于是users.{age}表示的是age的一个集合。
2.访问集合和访问数组的方式类似,这里不做试验。
3.Set集合中是没有顺序的,所以第16个中取不到值。
4.在ognl中单引号可以表示一个字符串。
ognl.jsp
<li>22.投影(过滤):<s:property value="users.{?#this.age==1}[0]"/></li>
<li>23.投影:<s:property value="users.{^#this.age>1}.{age}"/></li>
<li>24.投影:<s:property value="users.{$#this.age>1}.{age}"/></li>
<li>25.投影:<s:property value="users.{$#this.age>1}.{age} == null"/></li>
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-32069-4.html
3亿人