ch3-4Struts2的OGNL.ppt

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 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

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档