OGNL
来源:互联网 发布:小巴蒂克劳奇 知乎 编辑:程序博客网 时间:2024/06/05 00:48
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>
- ognl
- ognl
- OGNL
- OGNL
- OGNL
- OGNL
- OGNL
- ognl
- OGNL
- ognl
- ognl
- ognl
- ognl
- ognl
- ognl
- ognl
- ognl
- ognl
- 深度围观block:第二集
- 从《古惑仔》里看流氓的数据陷阱
- PHP_AJAX实例1
- Unity随心记
- 春运抢火车票攻略汇总(持续更新中)
- OGNL
- 深度围观block:第三集
- centos6.2 安装QT
- C++指向类成员的指针的使用(详细介绍)
- Block剧终:Objective-C中的闭包性和匿名函数
- 实现网页图片的异步加载
- How to remove the //TODO comments from auto-generated code
- 黑马程序员---java基础---4集合框架
- svn clean up失败解决