- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Struts 2中的OGNL
/max/category/16130.html
本人是一个EL(Expression Language,以下译为表达式语言)的支持者。因为我对% %写法极为反感,忘记了在那本书上看到的一句话——“使用标志(Tag)的一个目的就是避免在JSP页面中出现过多的%%的语句,使页面与后台代码分离。”
表达式语言主要有以下几大好处:
避免(MyType) request.getAttribute()和myBean.getMyProperty()之类的语句,使页面更简洁;
支持运算符(如+-*/),比普通的标志具有更高的自由度和更强的功能;
简单明了地表达代码逻辑,使用代码更可读与便于维护。
Struts 2中的表达式语言
Struts 2支持以下几种表达式语言:
OGNL(Object-Graph Navigation Language),可以方便地操作对象属性的开源表达式语言;
JSTL(JSP Standard Tag Library),JSP 2.0集成的标准的表达式语言;
Groovy,基于Java平台的动态语言,它具有时下比较流行的动态语言(如Python、Ruby和Smarttalk等)的一些起特性;
Velocity,严格来说不是表达式语言,它是一种基于Java的模板匹配引擎,具说其性能要比JSP好。
Struts 2默认的表达式语言是OGNL,原因是它相对其它表达式语言具有下面几大优势:
支持对象方法调用,如xxx.doSomeSpecial();
支持类静态的方法调用和值访问,表达式的格式为@[类全名(包括包路径)]@[方法名 | ?值名],例如:@java.lang.String@format(foo %s, bar)或@tutorial.MyConstant@APP_NAME;
支持赋值操作和表达式串联,如price=100, discount=0.8, calculatePrice(),这个表达式会返回80;
访问OGNL上下文(OGNL context)和ActionContext;
操作集合对象。
OGNL的用法
OGNL是通常要结合Struts 2的标志一起使用,如s:property value=xx /等。大家经常遇到的问题是#、%和$这三个符号的使用。下面我想通过例子讲述这个问题:
首先新建名为Struts2_OGNL的Web工程,配置开发环境。之前很多朋友在使用Struts 2的过程中都遇到乱码问题。当然乱码问题由来已久,而且涉及多方面的知识,所以并非三言两语可以说明白,而且互联网上也已经有很多这方便的文章,大家可以Google一下。不过,如果你在开发的过程,多注意一下,避免乱码问题也不难。乱码多数是由于编码与解码所使用的方式不同造成的,所以我建议大家将编码方式都设为“utf-8”,如%@? page language=java contentType=text/html; charset=utf-8 pageEncoding=utf-8 %。另外,在配置web.xml时使用ActionContextCleanUp过滤器(Filter),如下面代码所示:
?xml version=1.0 encoding=UTF-8?web-app id=WebApp_9 version=2.4? ? xmlns=/xml/ns/j2ee? ? xmlns:xsi=/2001/XMLSchema-instance? ? xsi:schemaLocation=/xml/ns/j2ee /xml/ns/j2ee/web-app_2_4.xsd? ? display-nameStruts 2 OGNL/display-name? ??? ? filter? ? ? ? filter-namestruts-cleanup/filter-name? ? ? ? filter-class? ? ? ? ? ? org.apache.struts2.dispatcher.ActionContextCleanUp? ? ? ? /filter-class? ? /filter? ??? ? filter-mapping? ? ? ? filter-namestruts-cleanup/filter-name? ? ? ? url-pattern/*/url-pattern? ? /filter-mapping? ??? ? filter? ? ? ? filter-namestruts2/filter-name? ? ? ? filter-class? ? ? ? ? ? org.apache.struts2.dispatche
您可能关注的文档
最近下载
- JH100系列伺服控制器用户手册.PDF VIP
- 额济纳旗种植蜜瓜的气候条件分析-来源:现代农业科技(第2019009期)-安徽省农业科学院.pdf VIP
- 艾曲泊帕治疗难治性ITP病例分享.pptx VIP
- 集团三重一大事项决策管理办法.docx VIP
- 2025年蜀道投资集团有限责任公司人员招聘笔试备考题库.docx VIP
- DBJ14-073-2010 岩棉板外墙外保温系统应用技术规程.docx VIP
- YZP50液压修井转盘说明书.doc
- 气管切开患者护理课件.pptx VIP
- 高一物理 匀速圆周运动研究 典型例题精析.doc VIP
- 2024年全省交通综合执法职业技能竞赛理论知识考试题库(含答案).docx
文档评论(0)