Struts2框架解析:OGNL表达式语言与#号用法

需积分: 9 2 下载量 59 浏览量 更新于2024-08-18 收藏 1.36MB PPT 举报
"OGNL表达式语言(#号的用法)-struts ppt" OGNL(Object-Graph Navigation Language)是一种强大的表达式语言,用于在Java应用程序中获取和设置对象属性。在Struts2框架中,OGNL是核心组件之一,主要用于视图层的数据绑定和表达式计算。`#`号在OGNL表达式中具有特殊含义,它标志着访问OGNL上下文和Action上下文的开始。 用法1:当`#`前缀被用来访问OGNL上下文或Action上下文时,例如`#request['userName']`、`#session['userName']`和`#application['userName']`,这分别代表了HTTP请求、会话和应用范围内的变量。这些上下文是Struts2处理用户请求时常用的对象,它们允许开发者存储和检索与特定用户交互有关的数据。 Struts2是一个流行的Java MVC框架,它的出现旨在解决Web应用程序开发中常见的问题,如页面导航、数据验证、布局一致性、可扩展性、国际化、Ajax支持以及防止表单重复提交等。相比于其前身Struts1,Struts2有以下几个显著优势: 1. **无侵入式设计**:Struts2的架构设计使得应用不再紧密依赖于ServletAPI和StrutsAPI,这降低了框架与业务逻辑之间的耦合度,使得代码更加灵活和易于维护。 2. **拦截器**:Struts2引入了拦截器机制,这是基于AOP(面向切面编程)的概念,可以方便地实现如权限控制、日志记录等跨切面的功能。 3. **类型转换器**:框架内建的类型转换器系统使得请求参数能自动转换为所需类型,无需像Struts1那样手动注册转换器。 4. **多视图技术支持**:Struts2支持JSP、FreeMarker、Velocity等多种视图技术,提高了视图层的灵活性。 5. **输入验证**:Struts2的验证机制可以针对特定方法进行,解决了Struts1中验证范围较窄的问题。 6. **国际化管理**:Struts2提供了全球化资源管理,支持全局、包级和Action级别的国际化配置。 从Struts1迁移到Struts2并非简单的扩展,实际上Struts2在很大程度上借鉴了WebWork框架的设计,因此升级过程需要考虑现有代码的兼容性和重构。升级步骤包括但不限于重新设计Action类、迁移配置文件、调整拦截器链等。 OGNL的`#`号用法在Struts2中扮演了关键角色,它简化了对请求上下文的访问,而Struts2框架则以其先进的设计和丰富的特性,成为Java Web开发领域的一个强大工具。