Struts2的OGNL标签详解

Struts2的OGNL标签详解

ID:42770311

大小:34.12 KB

页数:17页

时间:2019-09-21

Struts2的OGNL标签详解_第1页
Struts2的OGNL标签详解_第2页
Struts2的OGNL标签详解_第3页
Struts2的OGNL标签详解_第4页
Struts2的OGNL标签详解_第5页
资源描述:

《Struts2的OGNL标签详解》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、Struts2的OGNL标签详解一、Struts2可以将所有标签分成3类:UI标签:主要用于生成HTML元素的标签。非UI标签:主要用于数据库访问,逻辑控制等标签。Ajax标签:用于Ajax支持的标签。对于UI标签,则有可以分为两类:表当标签:表单标签主要用与生成HTML页面的from元素,以及普通表单元素的标签。非表单标签:非表单标签主要用于生成页面的树、Tab页等。流程控制标签:主要包含用于实现分页、循环等流程的标签。数据访问标签:主要包含用于输出ValueStack中的值,完成国际化等功能的标签。Struts2标签库分类图:二、使用Strut

2、s2标签库的准备:1、在Web.Xml文件中增加标签库d定义。(如果应用使用的是Servlet2.3以前)2、现在jsp中使用taglib编辑指令导入标签库,然后才可以使用标签。三、Struts2的OGNL标签:OGNL是ObjectGraphicNavigationLanguage的缩写,它是一个开源项目。Struts2框架使用OGNL作为默认的表达式语言。在传统的OGNL表达式求值中,系统会假设系统只要一个根对象,但Struts2的StackContext需要多个“根”对象,其中ValueStacke只是多个“根”对象的其中之一。假设:使用标签

3、OGNL表达式求值,不是用Struts2的OGNL表达式是求之。如果系统的Context中包含两个对象:foo对象,它在Context中的名字为foo;bar对象,并且它在Context中的名为bar。将foo对象设置成Context的根对象。返回foo.getBlah()方法的返回值#foo.blah返回bar.getBlah()方法的返回值#bar.blah可以看出ONGL表达式的语法非正常简洁。Struts2不知根据表达式从ValueStack中取的对象,还可以直接从对象中获取属性。Struts2提供了一个特殊的OGNLProperAcces

4、sories(属性访问器),它可以自动搜寻栈内的所有实体(从上到下),直接找到求值表达式匹配的属性。Struts2使用标准的Context来进行OGNL表达式求值,OGNl处理的顶级对象是一个Context,这个Context对象就是一个Map类型实例,在该OGNL的Context中,有一个对象,这个根对象就是OGNLValueStack,如果需要访问ValueStack里的属性,例如:#取出Valuestack中的bar属性:${bar};除此之外:Struts2还提供了一些命名对象,这些命名对象与根对象无关,它们只是存在于StackContex

5、t中。所以,访问这些对象实现需要使用#前缀来指明。1、paramenters对象:用于访问HTTP请求参数,2、request对象:用于访问HttpServletRequset的属性(Attribute)的Map。例如#request.userName3、Session对象:用于访问HttpSession的属性。例如#session.userName4、Application对象:用于访问ServletContext的属性。例如#application.userName5、Attr对象:如果可以访问到,则访问PageContext,否则将依次搜索H

6、ttpServletRequset,HttpSession,ServletContext中的属性。值得注意的是:当系统创建Action实例后,该Action实例已经被保存到ValueStack中,故无需书写#即可访问Action属性。OGNL中的集合(List/Map):直接生成一个List类型的集合,该List对象中包含三个元素,都个元素之间以英文逗号隔开;例:直接生成一个Map类型的集合,该Map对象中每个Key-value对象之间以英文冒号隔开:多项

7、之间以英文逗号隔开。例:Set标签用于蒋某个值放入指定范围:Scope:指定变量被放置的范围,该属性可以接受aplication、session、requset、page、action。如果该属性,则默认在OGNLContext中。Value:赋给变量的值,如果没有设置该属性,则将ValueStack栈顶的值付给变量。对于集合,OGNL提供了两个与元素:in和notin,其中in判断某个元素是否在指定集合中;notin则用于判

8、断某个元素是否不在指定集合中。in表达式:

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。