Struts2之Ognl详解

一、学习案例:通过程序理解OGNL。

二、案例分析:OGNL(对象图导航语言)是通过struts2的标签进行调用的。对于OGNL的学习,我们用程序在控制台输出的形式让大家进行了解。

在我们正式学习OGNL之前,我们要知道两个对象:根对象和上下文对象。比如一个双层饭盒,上面一层就是根对象,下面一层就是上下文对象。

根对象中的元素我们可以直接在el表达式和struts2标签中直接使用。

上下文对象中的元素我们在使用时要在元素前面加上#。

在页面中以图形的形式查看OGNL就要使用struts2的标签<s:debug></s:debug>

a)新建Java Project应用程序,通过Build Path引用OGNL所需的jar包。

1、javassist-3.11.0.GA.jar

2、ognl-3.0.6.jar

b)新建测试类(TestOGNL.java)

1、public class ognl.OgnlContext implements java.util.Map,通过这句我们可以发现OgnlContext是一个类,而且是Map类型的。所以它会以键值对的形式存放参数。

2、通过Map类型,我们还知道根对象不止可以存放一个对象。

c)创建两个对象:Person和Dog。统一给予一个name属性。

d)为对象初始化值之后,都put进OgnlContext。然后在设置根对象。

context.setRoot(...)

e)Ognl.parseExpression(...)就是解析表达式。其实就是你在struts2的标签中表达式。

f)Ognl.getValue(obj1, context, context.getRoot());对解析之后的对象经行取值。

g)这就是OGNL的实现。演示项目对常用的表达式经行了举例,大家可以研究下。

三、经验之谈:

a)OGNL可以说是struts2的一大利器,规则很简单,项目中也很常用,可以说处处都能用到。而调用方法不常用,但也会用,有些功能利用ONGL调用方法还是很容易解决的。所以大家多练练。

b)访问集合 – 投影、选择(? ^ $)在项目用的很少,不过一旦使用将会有意想不到的效果。在我的网站“爱尚合伙人”中的好友列表中的好友里的心情就使用了。效果还是很OK的。不用专门记忆,了解就行,用到时再查,understand?

四、参考项目:http://download.csdn.net/detail/u011638419/8280245

五、每日一乐:

“小时候不知道JJ干什么用,现在知道了却没地方用 ”

最终解释权归大学生创业所有。转载请注明出处。@www.23hhr.com

时间: 2024-10-06 00:30:44

Struts2之Ognl详解的相关文章

【转】Struts2中的OGNL详解 (1)

 转载声明:菰☆淚 - Struts2中的OGNL详解 首先了解下OGNL的概念: OGNL是Object-Graph Navigation Language的缩写,全称为对象图导航语言,是一种功能强大的表达式语言,它通过简单一致的语法,可以任意存取对象的属性或者调用对象的方法,能够遍历整个对象的结构图,实现对象属性类型的转换等功能. 此外,还得先需弄懂OGNL的一些知识: 1.OGNL表达式的计算是围绕OGNL上下文进行的. OGNL上下文实际上就是一个Map对象,由ognl.OgnlCont

【转】Struts2中的OGNL详解 (2)

转载声明:菰☆淚 -Struts2中的OGNL详解 总结OGNL的使用方法: 访问属性 名字属性获取:<s:property value="user.username"/><br> 地址属性获取:<s:property value="user.address.addr"/><br> 访问方法 调用值栈中对象的普通方法:<s:property value="user.get()"/><

【Struts2】☆★之详解constant常量配置问题

[Struts2]☆★之详解constant常量配置问题 本文详细讲解web开发中使用Struts2时constant的常量配置问题 如下,constant添加位置 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" &qu

struts2标签库详解

原文:struts2标签库详解 源代码下载地址:http://www.zuidaima.com/share/1781606927846400.htm 要在jsp中使用Struts2的标志,先要指明标志的引入.通过jsp的代码的顶部加入以下的代码: <%@taglib prefix="s" uri="/struts-tags" %> If elseif  else 描述: 执行基本的条件流转. 参数: 名称 必需 默认 类型 描述 备注 test 是 bo

struts2基本配置详解2

接上篇struts2基本配置详解,还有一些配置没有讲到,下面将继续. struts.xml <package name="com.amos.web.action" namespace="/" extends="struts-default"> <action name="HelloWorldAction" method="execute"> <result name="

Struts2之命名空间详解及JSP文件上传了解

学习案例:struts配置元素详解以及简单的jsp文件上传. 一.案例分析: a)将鼠标放在struts.xml中的package标签上.Alt+/会自动提示: 1.name 2.namespace 3.extends 4.externalReferenceResolver 5.abstract 6.strict-method-invocation b)abstract属性表示该包是抽象的,不能直接使用,需要有子包继承才能使用.Struts-default既是abstract,所以我们要继承使用

Struts2中的OGNL详解

首先了解下OGNL的概念: OGNL是Object-Graph Navigation Language的缩写,全称为对象图导航语言,是一种功能强大的表达式语言,它通过简单一致的语法,可以任意存取对象的属性或者调用对象的方法,能够遍历整个对象的结构图,实现对象属性类型的转换等功能. 此外,还得先需弄懂OGNL的一些知识: 1.OGNL表达式的计算是围绕OGNL上下文进行的. OGNL上下文实际上就是一个Map对象,由ognl.OgnlContext类表示.它里面可以存放很多个JavaBean对象.

Struts2中的OGNL详解 《转》

首先了解下OGNL的概念: OGNL是Object-Graph Navigation Language的缩写,全称为对象图导航语言,是一种功能强大的表达式语言,它通过简单一致的语法,可以任意存取对象的属性或者调用对象的方法,能够遍历整个对象的结构图,实现对象属性类型的转换等功能. 此外,还得先需弄懂OGNL的一些知识: 1.OGNL表达式的计算是围绕OGNL上下文进行的. OGNL上下文实际上就是一个Map对象,由ognl.OgnlContext类表示.它里面可以存放很多个JavaBean对象.

Struts2的Action详解【转载】

Struts 2.0的Action讲解 有Struts 1.x经验的朋友都知道Action是Struts的核心内容,当然Struts 2.0也不例外.不过,Struts 1.x与Struts 2.0的Action模型很大的区别.         Struts 1.xStuts 2.0        接口必须继承org.apache.struts.action.Action或者其子类无须继承任何类型或实现任何接口        表单数据表单数据封装在FormBean中表单数据包含在Action中,