Struts2.0 Action深度解析及与Struts1.x的区别

需积分: 35 10 下载量 180 浏览量 更新于2024-07-13 收藏 2.34MB PPT 举报
"Struts2.0中的Action-struts2.0教学ppt" 在Struts框架中,Action扮演着至关重要的角色,它是业务逻辑处理的主要组件。在Struts 1.x和Struts 2.0中,尽管Action的概念仍然存在,但它们在实现和使用上存在显著差异。 Struts 2.0概述 Struts 2是Apache软件基金会的一个开源项目,它是Struts 1.x的升级版本,提供了更强大的功能和更灵活的架构。Struts 2不仅继承了Struts 1.x的优点,还弥补了其不足,如支持多种视图技术(包括FreeMarker和Velocity),降低了与Servlet API的耦合,提高了可测试性。 Struts 1.0原理 在Struts 1.x中,ActionServlet是核心组件,负责拦截HTTP请求并根据struts-config.xml配置文件转发到相应的Action。ActionForm用于封装用户表单数据,而ActionMapping则定义了Action与请求URL之间的映射关系。开发时,开发者主要关注ActionForm和Action的编写,以及struts-config.xml的配置。 Struts 2.0 Action的区别 在Struts 2.0中,Action的概念得到强化和扩展。Action不再仅仅是一个简单的Java类,而是成为了一个可配置、可扩展的组件。它允许开发者直接在Action类中处理业务逻辑,或者通过Interceptor(拦截器)来分离关注点。Action不再依赖于特定的ActionForm,而是使用注解或OGNL(Object-Graph Navigation Language)来获取请求参数,这使得数据绑定更加灵活。 Struts 2.0的Action配置 相比于Struts 1.x的struts-config.xml,Struts 2.0使用更灵活的配置方式,如XML配置、注解配置甚至是纯Java配置。Action的配置可以指定结果视图(Result),这些结果视图可以是JSP页面、Freemarker模板或其他视图技术。 Struts 2.0的优点 1. **更强大的表达式语言**:Struts 2引入了OGNL作为默认的表达式语言,允许在Action和视图之间进行复杂的对象导航和数据绑定。 2. **更灵活的视图支持**:除了JSP,Struts 2还支持FreeMarker、Velocity等模板引擎,提供更多的选择。 3. **低耦合**:Struts 2降低了对Servlet API的依赖,使得Action更容易进行单元测试。 4. **拦截器机制**:通过拦截器,可以实现通用的业务逻辑,如日志、事务管理等,增强了代码复用和模块化。 总结来说,Struts 2.0的Action不仅仅是处理请求的简单Java类,而是成为一个具有强大功能的组件,它通过OGNL、拦截器和更灵活的配置,极大地提升了开发效率和代码质量。这种设计使得Struts 2.0成为一个更加现代化的MVC框架,能够更好地适应复杂的企业级应用需求。