Struts2与Spring集成详解及核心概念

需积分: 3 1 下载量 196 浏览量 更新于2024-07-30 收藏 182KB DOC 举报
"这篇文档是关于Struts2框架的总结以及如何将其与Spring框架集成的教程。涵盖了Struts2的核心特性、与Spring的整合步骤、动态Action配置、Action的自定义方法、请求对象的获取、返回值管理、Struts2标签的使用、Struts1.x与Struts2的区别、国际化、转换器、拦截器、文件上传、错误处理、OGNL表达式语言以及新表单元素的介绍。" Struts2是一个强大的MVC框架,它在Java Web开发中被广泛使用。集成Spring可以使应用程序更好地实现依赖注入(DI)和面向切面编程(AOP)。以下是对这些内容的详细解释: 1. Struts2集成Spring: - 首先,确保项目中包含了Struts2和Spring的相关库,并将Spring的配置文件`applicationContext.xml`放入`WEB-INF`目录下。 - 在`web.xml`中配置Struts2的过滤器`FilterDispatcher`,以`.action`结尾的URL由Struts2处理。 2. 动态Action配置: - Struts2允许动态配置Action,可以通过XML或者注解方式来创建Action,无需硬编码Action类名。 3. Action自定义方法: - 用户可以自定义Action类的方法,每个方法对应一个HTTP请求,方法名通常与Action名称结合请求方法(GET或POST)来决定。 4. 获取request、response和session对象: - 在Struts2中,可以直接通过`ActionSupport`的成员变量`HttpServletRequest request`、`HttpServletResponse response`和`HttpSession session`来访问这些对象。 5. Action的返回值: - Action执行完毕后,可以通过返回一个特定的字符串来指示视图的跳转,这个字符串对应于配置文件中的结果配置。 6. 动态Action配置: - 可以使用通配符或基于注解的方式,动态地配置Action,使得Action映射更加灵活。 7. Struts2标签: - Struts2提供了一系列的标签库,如`s:textfield`、`s:submit`等,用于简化视图层的开发。 8. Struts1.x与Struts2的区别: - Struts2比Struts1.x更灵活,提供了更强大的Action配置和结果处理。 - Struts2支持OGNL作为默认的表达式语言,而Struts1.x使用JSP EL。 - Struts2引入了拦截器机制,增强了功能和可扩展性。 9. 国际化: - Struts2支持多语言,通过`struts.properties`配置文件和资源包来实现。 10. 参数化国际化字符串: - 可以在资源文件中使用参数化的键值对,然后在页面上动态替换参数。 11. Struts2转换器(Converter): - 转换器用于类型转换,可以自定义转换规则,以确保数据绑定时的类型正确性。 12. Struts2拦截器: - 拦截器是Struts2的核心特性,它们在Action调用前后执行,可以用于日志记录、权限检查等功能。 - 拦截器的实现原理基于责任链模式,通过配置文件或注解来定义拦截器的执行顺序。 13. 配置和使用拦截器: - 通过`struts.xml`或`struts-default.xml`配置拦截器栈,或者在Action配置中直接指定拦截器。 14. 自定义拦截器: - 开发者可以创建自己的拦截器类,继承自`Interceptor`接口并实现`intercept()`方法。 15. Struts2控制实现IoC控制反转: - Struts2可以通过Spring提供依赖注入,Action类中的属性可以通过Spring自动设置。 16. Struts2实现文件上传: - 使用`<s:file>`标签,配合`CommonsFileUpload`库,可以方便地处理文件上传操作。 17. 错误处理: - Struts2通过全局结果和异常映射来处理错误和异常,可以自定义错误页面和错误码。 18. OGNL(Object-Graph Navigation Language): - OGNL是Struts2的默认表达式语言,用于在Action和视图之间传递数据。 - OGNL的主要好处是提供了灵活的数据访问和操作,可以方便地访问对象属性和方法。 19. Struts2支持的表达式语言: - OGNL支持表达式、方法调用、集合操作等多种语法。 20. OGNL的用法: - OGNL可以用来设置和获取对象属性,例如`${object.property}`,也可以执行方法,如`${object.method()}`。 21. Struts2新表单元素: - `<s:checkboxlist>`用于显示复选框列表。 - `<s:doubleselect>`用于创建级联选择框。 - `<s:token>`用于防止重复提交,保证表单的一次性提交。 通过以上知识点的讲解,我们可以看到Struts2不仅提供了强大的MVC架构,还与Spring的集成,使企业级应用的开发变得更加高效和灵活。