struts2中ognl表达式 各种合集_mybatis ognl表达式_ognl表达式和el表达式

电脑杂谈  发布时间:2017-03-11 09:05:06  来源:网络整理

表达式通常用来访问页面中的各种变量,进行结果输出.

struts2支持以下几种表达式语言(默认的是OGNL):

OGNL:可以方便地操作对象属性的开源表达式语言;

JSTL:(JSP Standard Tag Library):JSP2.0集成的标准表达式语言;

Groovy:基于Java平台的动态语言,它具有时下比较流行的动态语言的一些特性;

Velocity:一种基于Java的模板匹配引擎。struts2中ognl表达式 各种合集

一、什么是OGNL

名称:全称是Object-Graph Navigation Language

用途:是一个用来获取和设置java对象属性的表达式语言。

应用场合:通过使用表达式语法导航对象图,而不是直接调用对象的获取和设置方法可以提供许多应用。比如在XML文件或者脚本文件中嵌入OGNL表达式语法,在JSP页面使用OGNL表达式语法。

操作对象:基于当前对象的上下文。

二、OGNL引用方式

属性名称:如对象user的属性username,可以使用user.username来获取.

方法调用:可以使用user.hashCode()返回当前对象的哈希码.

数组元素:对于userlist数组对象,可以使用userlist[0]来引用其中的某一个元素.

三、OGNL相对其他表达式语言具有下面几大优势

1)支持对象方法调用:如xxx.doSomeSpecial()

2)支持类静态的方法|值调用:格式为"@[类全名(包括包路径)]@[方法名|值名]"。如:

@java.lagn.String@format('foo%s','bar')--调用类静态方法

@tutorial.MyConstant@APP_NAME--访问类的静态值

3)支持赋值操作和表达式串联:如price=100,discount=0.8,calculatePrice(),这个表达式会返回80

4)访问OGNL上下文(OGNL context)和ActionContext

5)操作集合对象

四、使用OGNL表达式

1)要使用OGNL表达式,首先需要在web.xml中添加ActionContextCleanUp过滤器

<filter>

<filter-name>struts-cleanup</filter-name>

<filter-class>org.apache.struts2.dispatcher.ActionContextCleanUp</filter-class>

</filter>

<filter-mapping>

<filter-name>struts-cleanup</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>

五、'#'运算符

用途一般有三种:

1)访问非根对象属性,由于Struts 2中值栈被视为根对象,所以访问其他非根对象时,需要加#前缀。实际上,#相当于ActionContext. getContext()。struts2中ognl表达式 各种合集

parameters:包含当前HTTP请求参数的Map,#parameters.id[0],等价于request.getParameter("id");

request:包含当前HttpServletRequest的属性的Map,#request.userName,等价于request.getAttribute("username");


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-36926-1.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...