struts2的OGNL表达式
2017-10-25 21:10
204 查看
ognl表达式:
OGNL是Object Graphic Navigation Language(对象图导航语言)的缩写,他是一个开源项目。Struts框架使用OGNL作为默认的表达式语言,必须配置Struts标签用,不能离开Struts标签直接使用,就是说Ognl必须在Struts中使用。
当Struts2接受一个请求时,会迅速创建ActionContext,然后创建ValueStack,再创建action。接着把action存放到ValueStack中,所以action中的实例变量可以被OGNL表达式直接访问。
使用方式:
1.引入
2.使用
OGNL中重要的3个符号:#、%、$:
1.#符号:
1.#能取request、session、application里的attribute,但需要加前缀。如:
2.#能取request里的请求参数,但必须加parameters前缀,且取到的是一个数组,所以如果你要得到参数的第一项值,那么还要加下标。如:。这相当于调用request.getParameterValues(“name”)[0];
3.#加attr前缀能按request > session > application顺序获取attribute,这样当在request中取不到时,会自动向session里取,如果session里也取不到,会再向application里取。如果取到则返回,不再向上游历。如:
2. %运算符:
%{}的用途是在标签的属性为字符串类型时,计算OGNL表达式的值。
3.$运算符:
用于在国际化资源文件中,引用OGNL表达式。例如在资源文件中有一个标签fileName,则可以在资源文件中引用:
在struts2配置文件中引用OGNL表达式,如:
ognl具体使用方法:
1.访问属性
名字属性获取:
地址属性获取:
2.访问方法
调用值栈中对象的普通方法:
OGNL是Object Graphic Navigation Language(对象图导航语言)的缩写,他是一个开源项目。Struts框架使用OGNL作为默认的表达式语言,必须配置Struts标签用,不能离开Struts标签直接使用,就是说Ognl必须在Struts中使用。
当Struts2接受一个请求时,会迅速创建ActionContext,然后创建ValueStack,再创建action。接着把action存放到ValueStack中,所以action中的实例变量可以被OGNL表达式直接访问。
使用方式:
1.引入
<%@taglib prefix="s" uri="/struts-tags" %>
2.使用
<s:property value="user.name"/>标签获取取值,取值的时候要注意根元素(全局变量)不用#号,其他的都用#号
OGNL中重要的3个符号:#、%、$:
1.#符号:
1.#能取request、session、application里的attribute,但需要加前缀。如:
<s:property value="#session.name2"/>如果是取request范围的attribute,那么不需要加request前缀,加上反而取不到数据,ognl默认从request里取,如果没有取到并不会到session或application里取。如:
2.#能取request里的请求参数,但必须加parameters前缀,且取到的是一个数组,所以如果你要得到参数的第一项值,那么还要加下标。如:。这相当于调用request.getParameterValues(“name”)[0];
3.#加attr前缀能按request > session > application顺序获取attribute,这样当在request中取不到时,会自动向session里取,如果session里也取不到,会再向application里取。如果取到则返回,不再向上游历。如:
<s:property value="#attr.name"/>
2. %运算符:
%{}的用途是在标签的属性为字符串类型时,计算OGNL表达式的值。
3.$运算符:
用于在国际化资源文件中,引用OGNL表达式。例如在资源文件中有一个标签fileName,则可以在资源文件中引用:
validation.require=${getText(fileName)} is required
在struts2配置文件中引用OGNL表达式,如:
<action name="***" class="***"> <result type="redirect">ListPhotos.action?albumId=${albumId}</result> </action>
ognl具体使用方法:
1.访问属性
名字属性获取:
<s:property value="user.username"/><br>
地址属性获取:
<s:property value="user.address.addr"/><br>
2.访问方法
调用值栈中对象的普通方法:
<s:property value="user.get()"/><br>
相关文章推荐
- 【转载】Struts2学习总结 ---- OGNL 表达式语言
- Struts2的Ognl表达式的理解与使用
- Struts2学习(第十一篇)——OGNL表达式的基本语法和用法
- struts2教程(9)--OGNL表达式使用
- Struts2-----Ognl表达式语言
- struts2的整体回顾(ACTION、拦截器、值栈、OGNL表达式、ModelDriven方案等)
- struts2_Action、拦截器、值栈、OGNL表达式、ModelDriven实现方案
- struts2中几个核心的组件ActionContext、ValueStack、OGNL表达式
- Struts2学习记录-Value Stack(值栈)和OGNL表达式
- 深入理解Struts2中的OGNL表达式
- OGNL表达式struts2标签“%,#,$”
- OGNL表达式struts2标签“%,#,$”
- 【转】OGNL表达式struts2标签“%,#,$”
- OGNL表达式struts2标签“%,#,$”
- Struts2 OGNL表达式
- jsp页面,使用Struts2标签,传递和获取Action类里的参数,注意事项。<s:a action><s:iterator><s:param>ognl表达式 在编写SSH2项目的时候,除
- Struts2深入学习:OGNL表达式原理
- struts2 ognl表达式 后台获取不到值
- OGNL表达式struts2标签“%,#,$”
- Struts2深入学习:OGNL表达式原理