Struts2 学习笔记14 OGNL part3
来源:互联网 发布:发型知乎女生短发 编辑:程序博客网 时间:2024/05/22 21:06
OGNL这部分主要就是配置的方法,虽然不难但是比较繁琐,大家可以先做了解,等到需要用到的时候再查询。
接下来要说的是访问普通类的构造方法,很简单就不上代码了,访问普通类的构造方法:<s:property value="new com.tfj.struts2.ognl.User(9)"/>这样就可以可。
要详细说的是访问集合。还是先上ognl.jsp。9-19是访问集合的ognl表达式。
ognl.jsp
<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><%@taglib uri="/struts-tags" prefix="s"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <base href="<%=basePath%>"> <title>Ognl表达式学习</title> <meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--> </head> <body> <ol> <li>访问值栈中的action的普通属性:username=<s:property value="username"/></li> <li>访问值栈中对象的普通属性:<s:property value="user.age"/></li> <li>访问值栈中对象的普通属性:<s:property value="cat.friend.name"/></li> <hr/> <li>访问action的属性的方法:<s:property value="password.length()"/></li> <li>访问静态的属性:<s:property value="@com.tfj.struts2.ognl.S@STR"/></li> <li>访问静态的方法:<s:property value="@com.tfj.struts2.ognl.S@s()"/></li> <li>访问Math类:<s:property value="@@max(2,3)"/> <hr/> <li>访问普通类的构造方法:<s:property value="new com.tfj.struts2.ognl.User(9)"/></li> <hr> <li>访问List:<s:property value="users"/></li> <li>访问List中的某个元素:<s:property value="users[1]"/></li> <li>访问List中某个元素某个属性的集合:<s:property value="users.{age}"/></li> <li>访问List中某个元素某个属性集合中的特定值:<s:property value="users.{age}[0]"/>|<s:property value="users[0].age"/></li> <li>访问set:<s:property value="dogs"/></li> <li>访问set中某个元素:<s:property value="dogs[1]"/></li> <li>访问Map:<s:property value="dogmap"/></li> <li>访问Map中某个元素:<s:property value="dogmap.dog101"/></li> <li>访问Map中所有key:<s:property value="dogmap.keys"/></li> <li>访问Map中所有value:<s:property value="dogmap.values"/></li> <li>访问容器大小:<s:property value="dogmap.size()"/>|<s:property value="dogs.size"/> </ol> <s:debug></s:debug> </body></html>
然后我挑其中的一些需要注意的地方来讲一下,为了和上面的截图对应起来,我就用截图中的序号。
9.访问List 直接访问List的名称就可以了。
10.访问List中的某个元素,用中括号。
11.访问List中某个元素某个属性的集合,用大括号把属性名括起来。
12.访问List中某个元素某个属性集合中的特定值,有两种方式,我们习惯于用后一种。
13.访问set,访问set名。
14.访问set中某个元素,因为set是无序的,无法访问。
15.访问Map,访问Map名称。
16.访问Map中某个元素,直接访问。
17.访问Map中所有key,加keys。
18.访问Map中所有value,加values。
19.访问容器大小,有两种方式size带不带括号都行。
接下来要说的就是投影了,简单说就是过滤,选择集合中符合条件的显示出来。
<li>投影:<s:property value="users.{?#this.age==1}.{age}"/></li>
<li>投影:<s:property value="users.{^#this.age>1}.{age}"/></li>
<li>投影:<s:property value="users.{$#this.age>1}.{age}"/></li>
<li>投影:<s:property value="users.{$#this.age>1}==null"/>
20.显示users里age为1的age集合。
21.^表示第一个,表达式表示第一个age大于1,显示age的集合。
22.$表示最后一个,表达式表示最后个age大于1,显示age的集合。
23.这是个判断,很好理解。
下一部分就是中括号表达式。
<li>[]:<s:property value="[0]"/>
会得到
这个表达式会访问对应的action,[]:<s:property value="[0].username"/>就可以得到u。
还有如果第一个action里没有username,他就会找第二个action,在服务器跳转的时候,值栈里有多个action。
- Struts2 学习笔记14 OGNL part3
- struts2学习笔记----OGNL
- struts2 - ognl表达式 学习笔记
- struts2 - ognl表达式 学习笔记
- OGNL+标签---struts2学习笔记
- Struts2学习笔记(OGNL)
- Struts2.1 OGNL 表达式 学习笔记(转)
- struts2系列学习笔记(12)---------------OGNL
- Struts2.1 OGNL 表达式 学习笔记
- Struts2.1 OGNL 表达式 学习笔记
- Struts2学习笔记(十) OGNL
- Struts2学习笔记OGNL例子代码
- struts2学习笔记7-OGNL表达式
- Struts2 学习笔记 12 OGNL part1
- Struts2 学习笔记13 OGNL part2
- struts2学习笔记(7)------------ognl表达式
- Struts2学习笔记(九) OGNL
- Struts2学习笔记——OGNL表达式
- 这是我要走的路
- 自己写的QQ美女找茬外挂
- 主线程与子线程之间退出关系
- 用C#开发一个WinForm版的批量图片压缩工具
- Pollard's Rho Method
- Struts2 学习笔记14 OGNL part3
- linux下svnserver安装
- HDU 3555 Bomb 数位DP
- u-boot引导zImage内核
- 我的博客的第一天
- Yii中配置单点登录 即多个子站同步登录。
- jsp操作MySQL实现查询/插入/删除功能示例
- Java设计模式
- Tomcat配置任意目录下的Web应用程序