欢迎来到天天文库
浏览记录
ID:38299786
大小:1.52 MB
页数:38页
时间:2019-06-08
《表达式语言OGNL》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、表达式语言OGNL课程结构内容课时(H)第一章:Struts2入门3第二章:Struts2中的Action6第三章:Struts2拦截器3第四章:表达式语言OGNL3第五章:Struts2标签库3第六章:类型转换3第七章:国际化3第八章:文件上传和下载3第九章:校验框架3第四章:表达式语言OGNL目标:本章旨在向学员介绍:1)OGNL表达式的基本语法2)理解值栈3)会访问值栈以及上下文中的内容时间:3学时教学方法:授课+练习第四章:表达式语言OGNL本章内容4.1OGNL简介4.2OGNL基础4.3O
2、GNL基本语法4.1.1表达式语言EL(ExpressionLanguage)的作用避免(MyType)request.getAttribute()和myBean.getMyProperty()之类的语句,使页面更简洁;支持运算符(如+-*/),比普通的标志具有更高的自由度和更强的功能;简单明了地表达代码逻辑,使用代码更可读与便于维护。4.1.2Struts2支持的表达式语言Struts2支持以下几种表达式语言OGNL(Object-GraphNavigationLanguage),可以方便地操作对象
3、属性的开源表达式语言;JSTL(JSPStandardTagLibrary),JSP2.0集成的标准的表达式语言;Groovy,基于Java平台的动态语言,它具有时下比较流行的动态语言(如Python、Ruby和Smarttalk等)的一些起特性;Velocity,严格来说不是表达式语言,它是一种基于Java的模板匹配引擎,具说其性能要比JSP好。Struts2默认的表达式语言是OGNL是一种表达式语言,通过简单一致的表达式语法,可以存取对象的任意属性。4.1.3OGNL的优势支持对象方法调用,如xx
4、x.doSomeSpecial()支持类静态的方法调用和值访问支持赋值操作和表达式串联,如price=100,discount=0.8,calculatePrice(),这个表达式会返回80访问OGNL上下文(OGNLcontext)和ActionContext操作集合对象4.1.4OGNLOGNL是Object-GraphNavigationLanguage的缩写,它是一种功能强大的表达式语言(ExpressionLanguage,简称为EL),通过它简单一致的表达式语法,可以存取对象的任意属性,调
5、用对象的方法,遍历整个对象的结构图,实现字段类型转化等功能。它使用相同的表达式去存取对象的属性。现在的Struts2.x中使用OGNL取代原来的EL来做界面数据绑定,所谓界面数据绑定,也就是把界面元素和对象层某个类的某个属性绑定在一起,修改和显示自动同步。和struts1.x的formbean相比,这样做的好处非常明显:在Struts2.x中不需要为每个页面专门写formbean,可以直接利用对象层的对象。如果我们把表达式看做是一个带有语义的字符串,那么OGNL无疑成为了这个语义字符串与Java对象之
6、间沟通的桥梁。4.1.5使用OGNL的原因OGNL称为对象图导航语言。所谓对象图,即以任意一个对象为根,通过OGNL可以访问与这个对象关联的其它对象。示例:publicclassUser{privateStringusername;privateGroupgroup;publicStringgetUsername(){returnusername;}publicvoidsetUsername(Stringusername){this.username=username;}publicGroupgetG
7、roup(){returngroup;}publicvoidsetGroup(Groupgroup){this.group=group;}}4.1.5使用OGNL的原因publicclassGroup{privateStringname;privateOrganizationorg;publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.name=name;}publicOrganizationgetOrg(){retu
8、rnorg;}publicvoidsetOrg(Organizationorg){this.org=org;}}publicclassOrganization{privateStringorgId;publicStringgetOrgId(){returnorgId;}publicvoidsetOrgId(StringorgId){this.orgId=orgId;}}4.1.5使用OGNL的原因上面三个类,描述了通过一个User对象,可以导航到Grou
此文档下载收益归作者所有