首页 > 其他 > 详细

高淇Struts2.0教程之视频笔记(7)

时间:2014-04-02 11:23:06      阅读:825      评论:0      收藏:0      [点我收藏+]

7_OGNL语言

 

7.1 OGNL是什么?

OGNL全称是Object-Graph Navigation Language(对象图形导航语言),除了保持EL语言优点之外,ta的其他优点如下:

·能够访问对象的普通方法

·能够访问类的静态属性和静态方法

·强大的操作集合类对象的能力

·支持赋值操作和表达式串联

·访问OGNL上下文(OGNLValueStack对象)和Actioncontext

7.2ValueStack

    1.OGNL查询值时是在根对象(Struts2中的根对象就是ValueStack)查询。

2.由于Action对象是放在ValueStack中的,因此Action中的所有属性都可以通过OGNL直接读取到。

3.除了ValueStack中的值,其他ActionContext中的内容需要增加#来标示。加#,告诉OGNL不要再根对象中找,而是在其上下文中寻找相关值。

bubuko.com,布布扣

4.attr对象。依次从:PageContextRequestSessionApplication作用于中寻找属性。

bubuko.com,布布扣

bubuko.com,布布扣

 

7.3测试OGNL的小项目,获得上下文属性,存取对象的属性(读取作用域)

    本项目主要测试在debug视图下不同值的不同取法。

7.3.1先赋值到如下参数

bubuko.com,布布扣

 

7.3.2在页面获取对应的值

bubuko.com,布布扣

7.3.3页面中显示Debug

1)不需要加#引用属性值的:

bubuko.com,布布扣

2)需要加#引用属性值的:

bubuko.com,布布扣

bubuko.com,布布扣

bubuko.com,布布扣

3)传参数的时候

A,分别传一个、两个参数,但存在同名参数的时候,利用数组下标来引用如果不加下标的话,就打印整个数组)同名参数的方法:

bubuko.com,布布扣

B,页面显示效果:

bubuko.com,布布扣

7.4 OGNL的运算符

7.4.1 运算符 [] .

    bubuko.com,布布扣

bubuko.com,布布扣

小结:

  1. 点运算符操作方便,较常用
  2. [ ] 运算符操作不方便,但是功能强大,可以传入变量值,动态取值(例如上图,将r的值赋给a就是一个应用)

7.4.2 普通运算符

    OGNL支持所有java运算符。截图显示如下:

    bubuko.com,布布扣

bubuko.com,布布扣

7.4.3 赋值

    bubuko.com,布布扣

    bubuko.com,布布扣

7.5 OGNL操作集合

7.5.1 List/Set

List定义语法:{e1,e2,e3}

bubuko.com,布布扣

    bubuko.com,布布扣

7.5.2 Map

    bubuko.com,布布扣

    bubuko.com,布布扣

7.5.3 集合中查找元素:innot in操作符

bubuko.com,布布扣

bubuko.com,布布扣

7.5.4 过滤/投影

投影:由过滤集合中元素产生一个子集合。

?---符合选择逻辑的所有元素。

^---符合选择逻辑的第一个元素

$---符合选择逻辑的最后一个元素

#this---表示集合正在遍历的元素

代码演示:

bubuko.com,布布扣

bubuko.com,布布扣

bubuko.com,布布扣

7.6 OGNL其他技术

7.6.1 调用对象普通方法

    直接调用即可:<s:property value="#request.t5.test1()"/>

新建方法如下:

bubuko.com,布布扣

7.6.2 调用类的静态方法和静态属性

格式:

    @class@method(args) // 调用静态方法    

    @class@field          // 调用静态属性

注意:

  1. 其中class必须给出完整的类名(包括包名),如果省略class,那么默认使用的类是java.util.Method,

    如:@@min    (5,3) @@max(5,3) @@PI

bubuko.com,布布扣

bubuko.com,布布扣

  1. 需要修改Struts.xml配置,增加

<constantname="struts.ognl.allowStaticMethodAccess"value="true"/>

bubuko.com,布布扣

显示结果:

bubuko.com,布布扣

高淇Struts2.0教程之视频笔记(7),布布扣,bubuko.com

高淇Struts2.0教程之视频笔记(7)

原文:http://www.cnblogs.com/FreshStudent/p/3636809.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!