22.1.1 Spring Web MVC的特性

Spring Web Flow

Spring Web Flow(SWF)的目标是成为管理Web应用页面流程的最佳解决方案。

在Servlet和Portlet环境下,SWF集成像Spring MVC和JSF这样现有的框架。如果您的一个业务流程(或很多业务流程)会从会话模型而不是纯粹的请求模型收益,那么SWF可能就是您要的解决方案。

SWF允许您将逻辑页面流程捕获为独立的、能够在不同情况下重用的模块,因此非常适合构建Web应用程序模块,引导用户通过驱动业务流程的受控导航。

有关SWF的更多信息,请参阅Spring Web Flow网站

Spring的Web模块包含许多独特的Web支持特性:

  • 角色清晰分离。每个角色——控制器、校验器、命令对象、表单对象、模型对象、DispatcherServlet、handler映射、视图解析器等等——都由专门的对象来实现。
  • 框架和作为JavaBean的应用程序类的强大而直接的配置能力。这种配置能力包括易用的跨上下文引用,比如从Web控制器到业务对象和校验器。
  • 适应性、非侵入性以及灵活性。定义任意您需要的控制器方法签名,对给定的场景可能使用某一个参数注解(比如@RequestParam、@RequestHeader、@PathVariable等等)。
  • 可重用的业务代码,不需要重复。可以使用现有的业务对象作为命令对象或表单对象,而不是仿造业务对象去扩展一个框架的基础类。
  • 可定制的绑定和校验。类型不匹配作为应用级的校验错误,保留了违规值、本地化日期和数字绑定等等,而不是只使用仅包含字符串的表单对象手动进行解析和转换为业务对象。
  • 可定制的handler映射和视图解析。handler映射和视图解析策略从简单的基于URL的配置到复杂、专用的解析策略。Spring比需要特定技术的Web MVC框架更灵活。
  • 灵活的模型传递。使用名字/值Map的模型传递支持与任何视图技术的轻松集成。
  • 可定制的区域设置、时区和主题解析,支持带有或不带有Spring标签库的JSP,支持JSTL,支持Velocity无需额外的桥接,等等
  • 一个简单而强大的称为Spring标签库的JSP标签库,为数据绑定和主题等功能提供支持。自定义标签在标记代码方面允许最大的灵活性。有关标签库描述符的信息,参见附录中标题为第43章 Spring JSP标签库的部分。
  • 在Spring 2.0中引入的JSP表单标签库,使得在JSP页面中写入表单更容易。有关标签库描述符的信息,参见附录中标题为第44章 Spring表单JSP标签库的部分。
  • Bean的生命周期限定在当前的HTTP请求或HTTPSession。这不是Spring MVC本身的一个特性,而是Spring MVC使用的WebApplicationContext容器的一个特性。这些bean作用域在7.5.4节 请求、会话、全局会话、应用和WebSocket作用域中描述。

书籍推荐