ognl与struts标签.doc_第1页
ognl与struts标签.doc_第2页
ognl与struts标签.doc_第3页
ognl与struts标签.doc_第4页
ognl与struts标签.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

ognl与struts标签 OGNL的使用 OGNL的使用 访问Action中的普通属性: 访问Action中的对象属性: 访问Action中的Set属性: 访问Action中的List属性: 访问Action中的Map属性的键: 访问Action中的Map属性的值: 访问Action中的Map属性的指定键对应的值: 访问Action中的Map属性的大小: 访问ActionContext中的普通属性: 访问ActionContext中的对象属性: 访问Action中的普通方法: 访问ActionContext中的某个对象上的普通方法: 访问静态属性: 访问静态方法: 访问Math类中的静态方法: 调用java.util.Date的构造方法: 调用java.util.Date的构造方法创建对象,再调用它的方法: 投影查询:获取userList中所有loginname的列表: 选择查询:获取userList中所有score大于60的loginname列表:60.0.loginname/ 选择查询:获取userList中所有score大于60并且gender为true的loginname列表:60.0 & #this.gender).loginname/ 选择查询:获取userList中所有score大于60并且gender为true的第一个元素的loginname:60.0 & #this.gender).loginname/ 选择查询:获取userList中所有score大于60并且gender为true的最后一个元素的loginname:60.0 & #this.gender).loginname/ 访问名为xxx的请求参数对应的第一个值: 访问通过ActionContext中放入Request中的属性: 访问通过ServletActionContext中放入Request中的属性: 访问通过ActionContext中放入Session中的属性: 访问通过ServletActionContext中放入Session中的属性: 访问通过ActionContext中放入ServletContext中的属性: 访问通过ServletActionContext中放入ServletContext中的属性: 直接访问属性域中指定名称的属性对应的值: : , : , 总结:在上边大家都好奇为什么都用struts的S标签,因为OGNL是通常要结合Struts 2的标志一起使用,如等 Action类与JSP页面之间的数据传递 1) 通过HttpServletRequest,HttpSession,ServletContext来传递数据。 a) Action中传数据:在Action类的请求处理方法中先获取各个作用域对象 ServletActionContext.getRequest(); ServletActionContext.getRequest().getSession(); ServletActionContext.getServletContext(); 然后调用相应的setAttribute(String 键, Object 值); b) 在JSP页面中取数据:可以使用EL表达式或代码片段来取出对应作用域中属性值。 c) 页面中的请求参数传递到Action中时,Action中直接定义对应名称的属性,并提供setter方法即可封装此数据。 2) 通过ActionContext实例来传递数据。 ActionContext针对每个正在执行Action的线程中绑定一份。 a) Action中通过ActionContext传递数据。 ActionContext提供了put(String 键, Object 值); /数据不会映射到HttpServletRequest中。 ActionContext提供的getSession().put(String 键, Object 值); /数据会自动映射到HttpSession中。 ActionContext提供的getApplication().put(String 键, Object 值); /数据会自动映射到ServletContext中。 b) 在JSP页面取数据:struts2推荐使用OGNL来取ActionContext中的数据。1. Struts2中的OGNL的使用。2. OGNL:对象图导航语言。通过OGNL表达式可以获取对象的属性,调用对象的方法,或构造出对象。 1) OGNL上下文中有一个根对象。这个根对象可以直接获取。不需要#。 2)支持常量: 字符串常量、字符常量、 数值常量:int、long、float、double 布尔常量:true、false Null常量 : null 支持操作符:支持Java的所有操作符,还支持特有的操作符: ,、 、in、not in; Struts2中的OGNL: 1) Struts2将ActionContext设置为OGNL上下文,并将值栈(ValueStack)作为OGNL的根对象放置到ActionContext中。 2) Struts2总是把当前Action实例放置在值栈的栈顶。所以,在OGNL中引用Action中的属性也可以省略“#”。 常用标签 1) 2) 3) 4) . 5) struts2中#、%和$这三个符号的使用方法【摘自max struts2教程】 一、的用法 1、 访问OGNL上下文和Action上下文,#相当于ActionContext.getContext();下表有几个ActionContext中有用的属性: parameters 包含当前HTTP请求参数的Map #parameters.id0作用相当于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 用于按request session application顺序访问其属性(attribute) #attr.userName相当于按顺序在以上三个范围(scope)内读取userName属性,直到找到为止 2、用于过滤和投影(projecting)集合,如books.?#this.price100; 3、构造Map,如#foo1:bar1, foo2:bar2。 二、%的用法 “%”符号的用途是在标志的属性为字符串类型时,计算OGNL表达式的值。例如在Ognl.jsp中加入以下代码: %的用途 三、$的用法 1、用于在国际化资源文件中,引用OGNL表达式 2、在Struts 2配置文件中,引用OGNL表达式 例如: ListPhotos.action? albumId=$albumId 四:OGNL访问List,MAP 页

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论