快速业务通道

Apache Geronimo和Spring框架,第5部分: Spring MVC - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-14
名的设计模式,特别是在 Web 应用程序领域。模式全都是关于将包含业务数据的模块与 显示模块的视图解耦的。这是怎样发生的?视图(例如,JSP 页面)怎样能够与其模型(例如,包含数据 的 JavaBean)解耦?记得这句格言么?一个层次的重定向几乎可以解决计算机业中的所有问题。确实, 在模型和视图之间引入重定向层可以解决问题。此重定向层是控制器。控制器将接收请求,执行更新模型 的操作,然后通知视图关于模型更改的消息。依赖于模型的状态并且依赖于请求的控制器可以决定要显示 哪个视图。图 1 演示了这种模式。

图 1. MVC 设计架构

Spring MVC 的强大之处

Spring MVC 实现了即用的 MVC 的核心概念。它为控制器和处理程序提供了大量与此模式相关的功能 。并且当向 MVC 添加反转控制(Inversion of Control,IoC)时,它使应用程序高度解耦,提供了通过 简单的配置更改即可动态更改组件的灵活性。Spring MVC 为您提供了完全控制应用程序的各个方面的力 量。

Spring 的 Web MVC 模块是围绕 DispatcherServlet 而设计的。DispatcherServlet 给处理程序分派 请求,执行视图解析,并且处理语言环境和主题解析,此外还为上传文件提供支持。

DispatcherServlet 通过使用处理程序映射来决定哪一个处理程序应当处理传入的请求。处理程序映 射只是用于标识使用哪一个处理程序来处理特定 URL 模式的映射。处理程序是只有一种方法 ModelAndView handleRequest(request,response) 的控制器接口的实现。Spring 还有一些可用的高级处 理程序实现;其中一个重要的高级处理程序实现是 SimpleFormController,它提供了将命令对象绑定到 表单、对其执行验证等功能。

您已经在本系列教程的先前教程中使用了 DispatcherServlet 和简单的处理程序。在下一个部分中, 将使用 SimpleFormController 并说明 Spring MVC 提供的各种即用功能。

用 Spring MVC 扩展电话本应用程序

在此部分中,将扩展电话本样例应用程序以使用 Spring MVC。

对电话本应用程序进行修改

在本教程中,您将对电话本应用程序进行下列修改:

开发一个用于主页的控制器。此控制器将处理来自主页的所有操作。

使用表单支持命令对象将电话本条目填充到主页中。您将看到支持命令对象如何高效地解决从主页本 身获取电话本条目列表的问题。

开发一个用于 Add Entry 页面的控制器。

将 Add Entry 页面中的表单元素绑定到命令对象 (PhonebookEntry)。

添加执行表单提交验证的代码。

将成功验证的条目添加到数据库中。

在执行这些更改的过程中,将按照定义新控制器和新 JSP 页面的相同步骤添加修改和删除条目的功能 。

工作区的目录结构

Apache Geronimo和Spring框架,第5部分: Spring MVC(4)

时间:2011-10-13 IBM Arun Chhatpar

图 2 向您展示了应用程序的布局。从 下载 部分下载源压缩文件,并最好将其解压缩到根目录中。

图 2. 解压缩源文件后的应用程序目录结构

这里将会发生什么情况?

在开始开发本教程中使用的各个组件之前,请先来简要了解一下各个组件的角色。图 3 演示了 DispatcherServlet 如何与 Spring MVC 类结合使用。此图中显示的概念和流程是将要在本教程中创建的 所有控制器和 JSP 页面的基础。

图 3. 显示 Spring MVC 发挥作用的事件流

Apache Geronimo和Spring框架,第5部分: Spring MVC(5)

时间:2011-10-13 IBM Arun Chhatpar

在任何 Web 应用程序中,GET 请求通常都表示一个表单打开事件,POST 请求表示一个表单提交事件 。Spring SimpleFormController 是使用相同的设计原理来设计的。下面是此控制器中的一些重要方法:

formBackingObject():当控制器收到一个表示表单打开的 GET 请求时调用此方法。这是可以创建并 返回带有在表

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号