《深入浅出struts2》--第四章,OGNL
来源:互联网 发布:立项依据怎么写 知乎 编辑:程序博客网 时间:2024/04/26 17:38
一,ValueStack栈
- struts在执行相应的动作方法之前会先创建一个名为ValueStack的对象,ValueStack对象用来保存该动作对象和其他对象。,存在这个对象里面的所有数据可以被拦截器,jsp等等访问。
- Valuestack栈分为两个部分: ObjectStack用来存储动作和相关对象 ContextMap存储各种映射关系(作用域)指出:attr,这个map用来按照request,session,application这个顺序检索某个属性。
- 通常使用OGNL表达式访问Value Stack栈中的数据。访问Context Map需要给OGNL表达式加一个前缀#;没加前缀,OGNL引擎就会在Object Stack里进行搜索访问。
二,OGNL表达式
访问Object Stack栈中的对象属性
- 访问Object Stack某个对象的属性:
object.propertyNameobject.['propertyName']object["propertyName"]提示:在对象栈中,每个对象从栈顶到栈低,都可以通过一个下标来引用。例如:[0]引用栈顶对象,[1]引用第二个对象。。。。则,可以这样访问对象栈中某个属性:[0].propertyName,还有另外两种方式。- Struts里的OGNL访问特点:如果在指定对象里没有找到指定的属性,则到指定对象的下一个对象里继续搜索。从指定对象开始往下找,找到则停止。说下,从栈顶对象开始搜索,就可以省略引用,即[0].name等价于name。
- 如果这个属性的返回值依旧是个对象,则就可以继续用这个规则向下访问。
1,
#object.propertyName
#object.['propertyName']
#object["propertyName"]
调用字段和方法:
可以调用任何一个类的静态字段和方法。
可以调用ValueStack中对象的公共字段和方法(静态的或其他类型的都可以)。
调用方法都允许传递参数。
@全限定类名@字段名/方法名(参数列表)
********************************
调用示例字段和方法:
object.fieldName
object.methodName(argList)
上面object是ObjectStack栈里的某个对象的引用
访问数组类型,List类型,Map类型的属性:
像访问其他数组/List一样访问元素以及访问操作数组/List的方法。
注意访问某个类属性返回的Map集合中的值时,不带#。但是访问Context Map里的Map一定要带前缀#
返回的数组:a,b,c
返回的list:[a,b,c]OGNL表达式创建一个List {"a","b","c"}
返回Map:{key-1=value-1,key-2=value-2} OGNL表达死创建一个Map #{key-1:value-1,key-2:value-2}
注意:一般会结合OGNL和EL一起使用。
0 0
- 《深入浅出struts2》--第四章,OGNL
- 第四章 OGNL 对象-图形导航语言:深入浅出struts
- struts2 ognl
- struts2 OGNL # % $
- struts2 OGNL # % $
- struts2 OGNL
- OGNL struts2
- struts2 OGNL
- Struts2 OGNL
- struts2 OGNL # % $
- Struts2---->OGNL
- Struts2 OGNL
- struts2 OGNL
- Struts2-OGNL
- struts2 OGNL
- STRUTS2 OGNL
- struts2 OGNL # % $
- struts2 - OGNL
- 面向对象
- C语言inline函数
- 一般题模板
- 二叉树的前序、中序、后续遍历,递归、非递归实现
- AICL(Auto Input Current Limited)
- 《深入浅出struts2》--第四章,OGNL
- QListWidget实现图片缩略图形式的列表
- Day02笔记
- Extjs4 源码分析系列一 类的创建过程
- JAVA之ConcurrentHashMap源码深度分析
- ant.xml文件
- C# 属性和字段 get set
- 分布式网站架构后续:zookeeper技术浅析
- drools入门(二)-----规则引擎Drools解决汽水问题(复杂逻辑)