1.当使用OGNL调用静态方法的时候,需要按照如下的语法编写表达式:@package.classname@methodname(parameter)
2.对于OGNL来说,java.lang.Math是其默认的类,如果调用java.lang.Math的静态方法时,无需指定类的名字,比如@@min(4,10);
3.对于OGNL来说,数组与集合是一样的,都是通过下标索引来去访问的。构造集合的时候使用{...}形式。
4.使用OGNL来处理映射(Map)的语法格式如下所示:
#{'key1':'value1','key2':'value2','key3':'value3'};
5.过滤(filtering):collection.{? expression}
6.OGNL针对集合提供了一些伪属性(如size,isEmpty),让我们可以通过书信的方式来调用方法(本质原因在于集合当中的很多方法并不符合JavaBean的命名规则),但我们依然还可以通过调用方法来实现与伪属性相同的目的。
7.过滤(filtering),获取到集合中的第一个元素:collection.{^ expression}
8.过滤(filtering),获取到集合中的最后一个元素:collection.{& expression}
9.在使用过滤操作时,我们通常都会使用#this,该表达式用于代表当前正在迭代集合中的对象(联想增强的for循环)
10.投影(projection):collection.{expression}
11.过滤与投影之间的差别:类比于数据库中的表,过滤是取行的操作,而投影是取列的操作
12. parameters,#parameters.username
request,#request.username
session,#session.username
application,#application.username
attr,#attr.username
以上几个对象叫做命名对象
<%@ taglib prefix="s" uri="/struts-tags" %>
<%--
Created by IntelliJ IDEA.
User: Lu
Date: 14-1-2
Time: 下午2:40
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title></title>
</head>
<body>
username:<s:property value="username"/><br>
password:<s:property value="password"/><br>
---------------------------------------<br/>
username:<s:property value="#parameters.username"/><br>
password:<s:property value="#parameters.password"/><br>
---------------------------------------<br/>
request:<s:property value="#request.hello"/><br>
request:<s:property value="#session.hello"/><br>
request:<s:property value="#application.hello"/><br>
---------------------------------------<br>
person1:address:<s:property value="list[0].address"/><br>
person2:age:<s:property value="list[1].age"/><br>
person1:cat1:name:<s:property value="list[0].cat.name"/><br>
person1:size:<s:property value="list.size"/><br>
isEmpty:<s:property value="list.isEmpty()"/><br>
---------------------------------------<br>
person2:friend3:<s:property value="list[1].friends[2]"/><br>
----------------------------------------<br>
person2:map2:<s:property value="list[1].map['hello2']"/><br>
----------------------------------------<br>
filtering:<s:property value="list.{? #this.name.length() >5}[0].name"/><br>
----------------------------------------<br>
<s:iterator value="list.{? #this.name.length() >5}">
<s:property value="name"/><br>
<s:property value="cat.color"/><br>
<s:property value="friends[0]"/><br>
</s:iterator>
----------------------------------------<br>
projection:<br>
<s:iterator value="list.{age}">
<s:property/><br>
</s:iterator>
</body>
</html>