OGNL

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>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值