Struts2开发:Action中代码详解与OGNL表达式应用

需积分: 0 1 下载量 118 浏览量 更新于2024-08-17 收藏 922KB PPT 举报
本文档深入探讨了Struts2开发中的Action组件及其核心概念。首先,介绍了Struts2的历史背景,它是Apache Software Foundation (ASF) 支持的MVC框架,由Craig R. McClanahan创建,主要解决Web应用开发中的问题,如页面导航管理、数据验证、布局统一、可扩展性和国际化支持等。Struts2相对于Struts 1的优势主要体现在以下几个方面: 1. **解耦设计**:Struts2采用了非侵入式设计,不再紧密依赖Servlet API和Struts API,使得应用更加灵活,便于维护和扩展。 2. **拦截器机制**:Struts2引入拦截器,支持面向切面编程(AOP),例如实现权限控制,增强了应用的业务逻辑处理能力。 3. **类型转换器**:Struts2内置类型转换器,简化了特殊参数类型的转换过程,无需像Struts 1那样手动注册。 4. **多表现层支持**:Struts2支持JSP、FreeMarker、Velocity等多种表现层技术,提供更多的灵活性和定制选项。 5. **输入校验增强**:Struts2允许对特定方法进行校验,改善了Struts 1中全局校验的不足。 6. **国际化资源管理**:Struts2提供了更精细的国际化资源文件管理,支持全局范围、包范围和Action范围的资源加载,提高了应用的本地化能力。 在实际开发中,Action类如`OrderListAction`在Struts2中被定义为继承自`Action`基类,并通过`execute`方法处理用户请求。在这个方法中,通过`ServletActionContext`对象操作HTTP请求上下文,包括设置属性如`username`,以及在JSP页面上使用OGNL表达式来动态获取这些属性。例如,`<s:property>`标签用于从请求(request)、会话(session)、应用(application)、属性(attr)和ValueStack中取出`username`值,以及从参数(parameters)中获取特定键值。 Struts2的出现是对Struts 1的改进,通过提供更为灵活、强大的功能和更好的架构设计,极大地提升了Web应用开发的效率和质量。了解和掌握这些关键知识点对于Struts2开发者来说至关重要。