- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ch3-4Struts2的OGNL要点
OGNL中#的使用: #可以取出栈上下文中的存放的对象. 名称 作用 例子 parameters 包含当前HTTP请求参数的Map #parameters.id作用相当于request.getParameter(id) request 包含当前HttpServletRequest的属性(attribute)的Map #request.userName相当于request.getAttribute(userName) session 包含当前HttpSession的属性(attribute)的Map #session.userName相当于session.getAttribute(userName) application 包含当前应用的ServletContext的属性(attribute)的Map #application.userName相当于application.getAttribute(userName) attr 用于按pagerequest session application顺序访问其属性(attribute) 假如pageContext中没有userName属性,但request有userName属性, #attr.userName相当于request.getAttribute(userName) OGNL引用Action的属性 因为Action实例被放在Value Stack中,而Value Stack又是根元素(root)中的一个,所以对Action中的属性的访问可以不使用标记#,而对其他的访问都必须使用#标记。 s:property value=postalCode/ ActionContext中的其他非根(root)元素的属性可以按照如下的方式访问: s:property value=#session.mySessionPropKey/ or s:property value=#session[‘mySessionPropKey’]/ or s:property value=#request[‘mySessionPropKey’]”/ Action类可以使用ActionContext中的静态方法来访问ActionContext。 ActionContext.getContext().getSession().put(mySessionPropKey, mySessionObject); OGNL与Collection(Lists,Maps,Sets) 生成List的语法为: {e1,e2,e3}. s:select label=label name=name“ list={name1,name2,name3} value=%{name2} / 上面的代码生成了一个HTML Select对象,可选的内容为: name1,name2,name3,默认值为:name2。 生成Map的语法为:#{key1:value1,key2:value2}. s:select label=label name=name“ list=#{foo:foovalue, bar:barvalue} / 上面的代码生成了一个HTML Select对象,foo名字表示的内容为:foovalue,bar名字表示的内容为:barvalue。 对于集合,OGNL提供了两个元素符:in和not in,其中in判断某个元素是否在指定集合中;not in则用于判断某个元素是否不在指定集合中。 判断一个对象是否在List内存在: s:if test=foo in {foo,bar} ?? muhahaha /s:if s:else ?? boo /s:else s:if test=foo not in {foo,bar} ?? muhahaha /s:if s:else ?? boo /s:else 取得一个List的一部分: ? – 所有满足选择逻辑的对象 ^ - ??第一个满足选择逻辑的对象 $ - ??最后一个满足选择逻辑的对象 例如: person.relatives.{? #this.gender == male} 上述代码取得这个人(person)所有的男性(this.gender==male)的亲戚(relatives) Lambda 表达式 OGNL支持简单的Lambda表达式语法,使用这些语法可以建立简单的lambda函数。 例如: Fibonacci: if n==0 return 0; elseif n==1 return 1; else return fib(n-2)+fib(n-1); fib(0) = 0 fib(1) = 1 fib(11) = 89 O
您可能关注的文档
- CDMA移动通信系统.ppt
- 【导学教程】2015语文 古诗文分析综合95.ppt
- 【导学教程】2017届高三生物二轮高考专题辅导与训练(课件+练习)第二部分 应考技巧篇第二部分攻略(二).ppt
- 【复习方案 河北】2015中考数学总复习课件:第1课时 实数的有关概念与大小比较(共33张PPT).ppt
- 【干货】人教版高一必修二历史【复习】.docx
- CH05-JavaScript.ppt
- 【地理】湘教版必修2_第三章_第二节_农业区位因素与农业地域类型(课件).ppt
- ch05-2_电力系统正常运行方式的调整与控制.ppt
- Ch02控制系统的动态数学模型.pptx
- cfx母乳喂养的相关问题.ppt
- ch3螺纹联接例题.doc
- ch3-管理信息系统概述.ppt
- 【成才之路】2015-2016学年高中历史 第七单元 第21课 二战后苏联的经济改革课件 新人教版必修2.ppt
- 【成才之路】2014-2015学年高中政治(人教版必修1)第7课 第1框.ppt
- ch3-程序的执行过程_2017227142222739.ppt
- 【成才之路】2015-2016学年高中历史 第二单元 第5课 开辟新航路课件 新人教版必修2.ppt
- 【成才之路】2014-2015学年高中政治(人教版必修1)第8课 第2框.ppt
- 【成才之路】2015-2016学年高中历史 第三单元 第9课 近代中国经济结构的变动课件 新人教版必修2.ppt
- 【教科版】八年级上册:2.3《有朋友的感觉》课件.ppt
- 【教学课件】山人版思品8.9.1《财产属于谁留给谁》.ppt
文档评论(0)