Struts2是一个基于MVC(Model-View-Controller)设计模式的开源Java Web框架,它在Web应用开发中被广泛使用。Struts2的核心在于提供一个强大的、灵活的、可扩展的架构,使得开发者能够更方便地实现业务逻辑与表现层的分离,从而提高开发效率和代码质量。
Struts2的核心jar包包含了框架运行所需的所有基本组件和服务。这些组件和服务包括但不限于:
1. **Action类和ActionSupport**: Action是Struts2的核心组件,负责处理用户请求并执行业务逻辑。ActionSupport是Action的基类,提供了默认的行为,如错误处理和国际化支持。
2. **Interceptor(拦截器)**: 拦截器是Struts2的一个重要特性,它们在Action调用前后执行,可以实现如日志记录、事务管理、性能监控等功能。例如,`ValidationInterceptor`用于验证表单数据,`ExceptionMappingInterceptor`处理异常等。
3. **Result类型**: 结果表示Action执行后如何展示给用户。常见的结果类型有`dispatcher`(重定向或转发到JSP页面),`stream`(返回文件流),`redirectAction`(重定向到另一个Action)等。
4. **配置文件**: `struts.xml`是Struts2的主要配置文件,定义了Action、Interceptor、结果类型等。通过这个文件,开发者可以控制Action的映射、拦截器链的设置以及结果的跳转规则。
5. **Plug-in(插件)**: Struts2支持插件机制,允许开发者扩展框架功能,如添加新的拦截器、结果类型等。例如,`struts2-convention-plugin`提供了自动Action映射的便利。
6. **OGNL(Object-Graph Navigation Language)**: OGNL是Struts2的默认表达式语言,用于在Action和视图之间传递数据。例如,Action中的属性可以直接在JSP中通过OGNL表达式访问。
7. **FilterDispatcher(或StrutsPrepareAndExecuteFilter)**: 这是Struts2的前端控制器,负责接收HTTP请求,解析请求参数,并根据配置文件调度Action。
8. **Tiles2**: Struts2集成了Tiles2框架,用于构建复杂的布局和模板,提高页面的复用性。
9. **Freemarker和JSP**: Struts2支持使用Freemarker和JSP作为视图技术,允许开发者选择适合自己的模板引擎。
10. **国际化与本地化**: Struts2提供了对多语言的支持,可以通过资源文件轻松实现界面的国际化。
使用Struts2核心jar包时,需要正确配置web.xml以启用Struts2框架,并在项目中引入相应的依赖。开发过程中,还需要理解并掌握Action、拦截器、结果类型等核心概念,以及如何利用配置文件进行定制化设置。同时,合理利用插件和第三方库,可以进一步提升开发效率和应用性能。