Struts2 OGNL表达式详解:ActionContext与valuesStack的深度探索
在Struts2框架中,OGNL(Object-Graph Navigation Language)表达式语言起着至关重要的作用,它提供了一种高效、简洁的方式来操作对象属性以及处理请求数据。OGNL的主要优势在于: 1. **简化代码**:通过OGNL,开发者无需频繁地使用`request.getAttribute()`或`myBean.getMyProperty()`这样的方法,可以直接在视图层上编写更为直观的表达式,例如`#parameters.id[0]`来获取HTTP请求中的参数值,提高了代码的可读性和维护性。 2. **运算符支持**:OGNL支持各种运算符,如加减乘除(+-*/),这使得表达式能够执行更复杂的计算,赋予了动态处理数据的强大能力。 3. **上下文操作**:Struts2中的`#`符号在ActionContext中扮演了关键角色,它等同于`ActionContext.getContext()`,允许开发者直接访问ActionContext中的不同层次的属性,如`#parameters`、`#request`、`#session`和`#application`。这些属性提供了HTTP请求参数、当前请求、会话和应用上下文的映射,方便获取和操作相应范围内的属性值。 - `#parameters`:存储当前HTTP请求的所有参数,如`#parameters.id[0]`获取第一个id参数。 - `#request`:映射当前HttpServletRequest的属性,如`#request.userName`等同于`request.getAttribute("userName")`。 - `#session`:存储HttpSession的属性,如`#session.userName`获取session中的 userName 属性。 - `#application`:访问应用的ServletContext属性,如`#application.userName`获取应用级的 userName。 4. **集合过滤和投影**:OGNL还支持对集合进行过滤和投影操作,例如`books.{?#this.price<100}`,这可以帮助开发者从一个集合中选择满足特定条件的元素。 5. **构造Map**:通过OGNL,开发者可以轻松构造Map,如`#{'foo1':'bar1','foo2':'bar2'}`,这在需要动态创建数据结构时非常实用。 Struts2的OGNL表达式语言极大地提升了开发效率和代码清晰度,通过其灵活的操作方式,使得在Struts2中处理业务逻辑和数据变得更加简单和高效。理解并熟练运用OGNL是掌握Struts2框架的关键之一。
下载后可阅读完整内容,剩余3页未读,立即下载
在struts2 2.3.15.1版本中将jsp页面中的<c:if test="${empty pageFinder.data }"> <td colspan=13 align="center” height="25"xfont color="red"没有查询到相关记录</f</c:if> <s:iterator value="%{pageFinder.data}" var="rehs” status="status"><s:set var="index”value="#status getIndex()"/> 这段代码中的<s:iterator value="%{pageFinder.data}"改为<s:iterator value="${pageFinder.data}"系统会报does not accept any expressions这个错误,是什么原因? 无奈的2013 -
粉丝: 0
- 资源: 3
上传资源 快速赚钱
- 我的内容管理
展开
- 我的资源
快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分
登录查看自己的积分
- 我的C币
登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
-
C++标准程序库:权威指南
-
Java解惑:奇数判断误区与改进方法
-
C++编程必读:20种设计模式详解与实战
-
LM3S8962微控制器数据手册
-
51单片机C语言实战教程:从入门到精通
-
Spring3.0权威指南:JavaEE6实战
-
Win32多线程程序设计详解
-
Lucene2.9.1开发全攻略:从环境配置到索引创建
-
内存虚拟硬盘技术:提升电脑速度的秘密武器
-
Java操作数据库:保存与显示图片到数据库及页面
-
ISO14001:2004环境管理体系要求详解
-
ShopExV4.8二次开发详解
-
企业形象与产品推广一站式网站建设技术方案揭秘
-
Shopex二次开发:触发器与控制器重定向技术详解
-
FPGA开发实战指南:创新设计与进阶技巧
-
ShopExV4.8二次开发入门:解决升级问题与功能扩展
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证 文档复制为VIP权益,开通VIP直接复制 信息提交成功
- 粉丝: 0
- 资源: 3
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C++标准程序库:权威指南
- Java解惑:奇数判断误区与改进方法
- C++编程必读:20种设计模式详解与实战
- LM3S8962微控制器数据手册
- 51单片机C语言实战教程:从入门到精通
- Spring3.0权威指南:JavaEE6实战
- Win32多线程程序设计详解
- Lucene2.9.1开发全攻略:从环境配置到索引创建
- 内存虚拟硬盘技术:提升电脑速度的秘密武器
- Java操作数据库:保存与显示图片到数据库及页面
- ISO14001:2004环境管理体系要求详解
- ShopExV4.8二次开发详解
- 企业形象与产品推广一站式网站建设技术方案揭秘
- Shopex二次开发:触发器与控制器重定向技术详解
- FPGA开发实战指南:创新设计与进阶技巧
- ShopExV4.8二次开发入门:解决升级问题与功能扩展