OGNL--object Graphoc Naviguage 对象图导航语言 --是一个功能强大的表达式语言
OGNL 表达式是框架的特点之一
Struts2 中的OGNL:最大的附加忒特性就是支持值栈,在OGNL上下文中只能有一个根对象,Struts2 的值栈允许存在许多虚拟根对象;
注:OGNL 上下文可以包含一个或多个JavaBean 对象,在这些对象中是一个特殊的,这个对象就是上下文的跟root 对象;
访问根对象的属性不需要任何的标记,其他对象都需要使用一个井号(#) 来访问;
值栈通过一个接口进行定义:com.opensympony.xwork2.util.ValueStack
对应的实现类是:com.opensymphony.xwork2.util.OgnlValueStack
值栈是上下文中根的对象,因此可以直接的进行访问;
项目:演示了如何使用OGNL 表达式来访问OGNL 上下文和值栈,同时演示了如何使用OGNL 表达式进行结合操作
投影:OGNL 提供了一个简单的方式在一个集合中对每一个元素调用相同的方法,或者抽取相同的属性,并将
结果保存为一个新的集合。称之为投影;
例:假设employess 是一个包含了employee对象的列表,下列表达式:
#employees.{name} 返回所有雇员名字的列表;
在投影期间使用#this 变量来引用迭代的当前元素:Objects.{#this.iinstanceof String?#this.toString()}
上述表达式将对象中的元素作为字符串值产生一个新的元素列表;
选择:
OGNL 提供了一个 简单的方式来使用表达式从集合中选择某些元素,并将结果保存到新的集合中;
例:
假设employees是一个包含了employee对象的列表:
#employees.{?@this.salary>3000} 返回雇员薪水大于3000 的所有员工的列表
如果要得到元素列表中的第一个元素可以使用索引:
@employees.{^#this.salary>3000}[0]
表达式的三个字符的用法:
?--------选取匹配选择逻辑的所有元素
^--------选取匹配逻辑的第一个元素
$--------选取匹配逻辑的最后一个元素
bean 标签的使用:
bean 标签用于实例化一个JavaBean 对象(符合规范),bean标签的标签体可以包含多个param标签,用于设置
Bean的属性;
<s:bean name="com.svse.entity.User" var="user">
<s:param name="" value/>
</s:bean>
iterator标签的使用:
属性用法:
var :可以通过该属性的值引用集合中的元素
status:同过该实例可以获得迭代过程的一些状态信息
IteratorStatus 实例包含了以下几个方法:
int getCount();返回当前迭代过元素的总和;
int getIndex(); 返回当前迭代元素的索引。
boolean isEven(); 判断当前迭代元素是否为偶数
boolean isOdd(); 判断当前迭代元素是否为奇数
boolean isFirst()/isLast(); 判断当前迭代的元素是否为最后一个元素
案例:
<s:bean name="org.apache.struts2.example.IteratorExample" var="it">
<s:param name="day" value="foo"/>
<s:param name="day" value="bar"/>
</s:bean>
<p/>
<table border cellspacing="0" cellpadding="1">
<tr>
<th>Days of the week</th>
</tr>
<s:iterator value="#it.days" status="rowstatus">
<tr>
<s:if test="#rowstatus.odd==true">
<td style="background:grey"><s:property/></td>
</s:if>
<s:else>
<td><s:property/></td>
</s:else>
</tr>
</s:iterator>
</table>
分享到:
相关推荐
2、支持类静态的方法调用和值访问,表达式的格式为@[类全名(包括包路)]@[方法名 | 值名],例如: @java.lang.String@format('foo %s', 'bar')或@tutorial.MyConstant@APP_NAME; 3、支持赋值操作和表达式串联,...
struts2标签和OGNL表达式struts2标签和OGNL表达式
有对struts2标签和OGNL的总结。
struts2标签使用例子 struts2标签使用例子 struts2标签使用例子struts2标签使用例子
Struts2 OGNL---标签详解析 都有实例 适合初学者
struts2的ognl
struts2中siterator 标签的使用详解 及 OGNL用法 struts2中siterator 标签的使用详解 及 OGNL用法
Struts2的标签库及OGNL表达式语言
struts2标签和OGNL表达式.pdf
NULL 博文链接:https://johnson2132.iteye.com/blog/720769
struts2中ognl表达式的用法,详细介绍了ognl表达式与struts2基本标签的结合。
struts标签和ognl语法,比较全的标签说明
struts2中的OGNL struts2的新表单标志的使用 struts2与AJAX一 struts2与AJAX二 struts2与AJAX三 struts2中用Spring实现IOC struts2中的零配置与IOC struts2介绍之使用连接标签 struts2入门 struts2进阶学习一 struts...
OGNL几个常见标签的使用及含义asdfasdfsfasdfasdfasdfsf
最近的项目开发中使用了struts2的框架,但是好多人都不清楚struts2的标签的具体的用法,要想完全掌握struts2标签的用法,那么你必须先精通了struts2中OGNL的用法。struts2中很多东西其实理解就行,但是惟独OGNL虽然...
在早期的WEB开发中,JSP视图控制和显示技术主要依靠Java脚本来实现,这样一来,JSP页面重新嵌入了大量的Java脚本代码,给...Struts2标签库相对struts1.x进行了巨大的改进,支持OGNL表达式,不再依赖任何表现层技术。
博文参考:http://blog.csdn.net/u011638419/article/details/42041991
java的Struts中的OGNL标签的使用,详细介绍,比较实用。
有关于Struts2的国际化消息处理说明文档
Struts2和Struts1的常见区别 二. Struts2入门 3. 快速配置Struts2环境 4. 开发一个Struts2简单实例 5. struts.xml文件 三. Struts2深入开发 6. 常用标签配置和使用 7. 常用标签配置和使用 8. 标签 ...