Struts2------OGNL表达式

Posted psyu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Struts2------OGNL表达式相关的知识,希望对你有一定的参考价值。

OGNL介绍

        它是Object-Graph Navigation Language的缩写(也称为对象图导航语言),它是一种功能强大的表达式语言,通过它简单一致的表达式语法,可以存取对象的任意属性,调用对象的方法,遍历整个对象的结构图,实现字段类型转化等功能。

在El表达式里面可表示为:$类.属性名 。   通过类取获得属性,这就是对象图导航语言

 

对比EL表达式和OGNL表达式:

1.用法区别

OGNL是通常要结合Struts 2的标志一起使用,如<s:property value="#xx" /> struts页面中不能单独使用,el可以单独使用 $sessionScope.username 

2.页面取值区别

 名称

servlet

ognl                                                                           el

parameters

request.getParameter("username")

#username                                             $username

request

request.getAttribute("userName")

#request.userName                                $requestScope.username

session

session.getAttribute("userName")

#session.userName                               $sessionScope.username

application

application.getAttribute("userName")

#application.userName                          $applicationScope.username

attr

用于按request > session > application顺序访问其属性(attribute)

#attr.userName相当于按顺序在以上三个范围(scope)内读取userName属性,直到找到为

 


 

案例

技术图片

 

OGNL向ValueStack压栈(先进后出)

前台向后台传值

技术图片

 

 

后台提供的set、get方法

技术图片

 

以上是关于Struts2------OGNL表达式的主要内容,如果未能解决你的问题,请参考以下文章

Struts2 OGNL表达式

Struts2 OGNL

第四节 Struts2 - OGNL详解

Struts2--OGNL

Struts2 — OGNL与值栈

struts2 OGNL表达式