- 浏览: 543660 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
jsdsh:
自己写的就是不一样.
Spring3 MVC 注解(二)---@RequestMapping -
jsdsh:
吼,非常吼.学习了
Spring3 MVC 注解(一)---注解基本配置及@controller和 @RequestMapping 常用解释 -
爱情是一种错觉:
我爱你 i love 你[color=red][/color] ...
Spring3 MVC 注解(一)---注解基本配置及@controller和 @RequestMapping 常用解释 -
fs08ab:
大哥,目前这个问题有什么可靠的解决方案吗
@ResponseBody注解 -
lhs295988029:
说的很清楚,明白了~
Spring3 MVC 注解(一)---注解基本配置及@controller和 @RequestMapping 常用解释
在第3部分中,我介绍 Spring MVC 框架。就像在
以前的文章中一样,我用银行示例介绍如何建模和构建简单的应用程序。示例应用程序包含了已经学过的一些技术(例如依赖注入),但是主要演示 Spring MVC 的特性。
Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,可以选择是使用内置的 Spring Web 框架还是 Struts 这样的 Web 框架。通过策略接口,Spring 框架是高度可配置的,而且包含多种视图技术,例如 JavaServer Pages(JSP)技术、Velocity、Tiles、iText 和 POI。Spring MVC 框架并不知道使用的视图,所以不会强迫您只使用 JSP 技术。Spring MVC 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。
Spring 的 Web MVC 框架是围绕 DispatcherServlet
设计的,它把请求分派给处理程序,同时带有可配置的处理程序映射、视图解析、本地语言、主题解析以及上载文件支持。默认的处理程序是非常简单的 Controller
接口,只有一个方法 ModelAndView handleRequest(request, response)
。Spring 提供了一个控制器层次结构,可以派生子类。如果应用程序需要处理用户输入表单,那么可以继承 AbstractFormController
。如果需要把多页输入处理到一个表单,那么可以继承 AbstractWizardFormController
。
示例应用程序有助于直观地学习这些特性。银行应用程序允许用户检索他们的帐户信息。在构建银行应用程序的过程中,可以学到如何配置 Spring MVC 框架和实现框架的视图层,视图层包括 JSTL 标记(用于显示输出的数据)和JavaServer Pages 技术。
要开始构建示例应用程序,请配置 Spring MVC 的 DispatcherServlet
。请在 web.xml 文件中注册所有配置。清单 1 显示了如何配置 sampleBankingServlet
。
<servlet> <servlet-name>sampleBankingServlet</servlet-name> <servlet-class> org.springframework.we.servlet.DispatcherServlet <servlet-class> <load-on-startup>1<load-on-startup> <servlet>
DispatcherServlet
从一个 XML 文件装入 Spring 应用程序上下文,XML 文件的名称是 servlet 的名称后面加上 -servlet 。在这个示例中,DispatcherServlet
会从 sampleBankingServlet-servlet.xml 文件装入应用程序上下文。
下一步是配置想让 sampleBankingServlet
处理的 URL。同样,还是要在 web.xml 中注册所有这些信息。
<servlet-mapping> <servlet-name> sampleBankingServlet<servlet-name> <url-pattern>*.jsp</url-pattern> </servlet-mapping>
下面,装入配置文件。为了做到这点,请为 Servlet 2.3 规范注册 ContextLoaderListener
或为 Servlet 2.2 及以下的容器注册 ContextLoaderServlet
。为了保障后向兼容性,请用 ContextLoaderServlet
。在启动 Web 应用程序时,ContextLoaderServlet
会装入 Spring 配置文件。清单 3 注册了 ContextLoaderServlet
。
<servlet> <servlet-name>context>servlet-name> <servlet-class> org.springframework.web.context.ContextLoaderServlet </servlet-class> <load-on-startup>1</load-on-startup> </servlet>
contextConfigLocation
参数定义了要装入的 Spring 配置文件,如下面的 servlet 上下文所示。
<context-param> <param-value>contextConfigLocation</param-value> <param-value>/WEB-INF/sampleBanking-services.xml</param-value> </context-param>
sampleBanking-services.xml 文件代表示例银行应用程序服务的配置和 bean 配置。如果想装入多个配置文件,可以在 <param-value>
标记中用逗号作分隔符。
示例银行应用程序允许用户根据惟一的 ID 和口令查看帐户信息。虽然 Spring MVC 提供了其他选项,但是我将采用 JSP 技术作为视图页面。这个简单的应用程序包含一个视图页用于用户输入(ID 和口令),另一页显示用户的帐户信息。
我从 LoginBankController
开始,它扩展了 Spring MVC 的 SimpleFormController
。SimpleFormContoller
提供了显示从 HTTP GET
请求接收到的表单的功能,以及处理从 HTTP POST
接收到的相同表单数据的功能。LoginBankController
用 AuthenticationService
和 AccountServices
服务进行验证,并执行帐户活动。“ 配置视图属性 ”一节中的 清单 5 描述了如何把 AuthenticationService
和 AccountServices
连接到 LoginBankController
。 清单 4 显示了 LoginBankController
的代码。
下面,我必须注册在接收到 HTTP GET
请求时显示的页面。我在 Spring 配置中用 formView
属性注册这个页面,如清单 5 所示。sucessView
属性代表表单数据提交而且 doSubmitAction()
方法中的逻辑成功执行之后显示的页面。formView
和 sucessView
属性都代表被定义的视图的逻辑名称,逻辑名称映射到实际的视图页面。
<bean id="loginBankController" class="springexample.controller.LoginBankController"> <property name="sessionForm"><value>true</value></property> <property name="commandName"><value>loginCommand</value></property> <property name="commandClass"> <value>springexample.commands.LoginCommand</value> </property> <property name="authenticationService"> <ref bean="authenticationService" /> </property> <property name="accountServices"> <ref bean="accountServices" /> </property> <property name="formView"> <value>login</value> </property> <property name="successView"> <value>accountdetail</value> </property> </bean>
commandClass
和 commandName
标记决定将在视图页面中活动的 bean。例如,可以通过 login.jsp 页面访问 loginCommand
bean,这个页面是应用程序的登录页面。一旦用户提交了登录页面,应用程序就可以从 LoginBankController
的 onSubmit()
方法中的命令对象检索出表单数据。
Spring MVC 的 视图解析器 把每个逻辑名称解析成实际的资源,即包含帐户信息的 JSP 文件。我用的是 Spring 的 InternalResourceViewResolver
,如 清单 6 所示。
因为我在 JSP 页面中使用了 JSTL 标记,所以用户的登录名称解析成资源 /jsp/login.jsp,而 viewClass
成为 JstlView
。
就像前面提到的,LoginBankController
内部连接了 Spring 的 AccountServices
和 AuthenticationService
。AuthenticationService
类处理银行应用程序的验证。AccountServices
类处理典型的银行服务,例如查找交易和电汇。清单 7 显示了银行应用程序的验证和帐户服务的配置。
<beans> <bean id="accountServices" class="springexample.services.AccountServices"> </bean> <bean id="authenticationService" class="springexample.services.AuthenticationService"> </bean> </beans>
以上服务在 sampleBanking-services.xml 中注册,然后装入 web.xml 文件中,就像 前面讨论的那样。控制器和服务配置好后,这个简单的应用程序就完成了。现在我们来看看部署和测试它时会发生什么!
我把示例应用程序部署在 Tomcat servlet 容器中。Tomcat 是 Java Servlet 和 Java ServerPagest 技术的官方参考实现中使用的 servlet 容器。如果以前没这么做过,请 下载 jakarta-tomcat-5.0.28.exe 并运行它把 Tomcat 安装到自己喜欢的任何位置,例如 c:\tomcat5.0
。
接下来,下载示例代码 并释放到驱动器(例如 c:\ )上。创建了 Spring 项目的文件夹之后,打开它并把 spring-banking 子文件夹拷贝到 c:\tomvat5.0\webapps。spring-banking 文件夹是一个 Web 档案,里面包含 Spring MVC 示例应用程序。lib 文件夹包含应用程序需要的 Spring 框架、与Spring 相关的 MVC 库以及 JSTL 标记库和 jar 文件。
要启动 Tomcat 服务器,请使用以下命令:
cd bin C:\Tomcat 5.0\bin> catalina.bat start
Tomcat 应当启动并部署 Spring MVC 示例应用程序。
要测试应用程序,请打开 Web 浏览器,指向 http://localhost:tomcatport/springbanking 并用 Tomcat 服务器实际运行的端口替换 tomcatport。应当看到图 1 所示的登录屏幕。输入用户 ID “admin”和口令“password”,并按下登录按钮。其他用户 ID 或口令会造成来自验证服务的错误。
登录成功之后,会看到图 2 所示的帐户细节页面。
在三部分的 Spring 系列 的第三篇文章中,我介绍了 Spring MVC 框架的特性。我演示了如何配置和开发 Spring MVC 应用程序、如何配置 Spring MVC 控制器和向其中插入依赖项、如何用 JavaServer Pages 技术开发应用程序视图,以及如何把自己的页面与 Spring MVC 的视图层集成。总结这篇文章时,我演示了如何在 Tomcat servlet 容器中部署应用程序以及如何在浏览器中测试它。
请继续关注 Spring 系列 的下一篇文章。在下一篇文章中,我将介绍如何把基于 JMS 的应用程序与 Spring 框架集成。同时,请参阅 参考资料 学习更多有关 Spring 框架和 Spring MVC 的内容。
发表评论
-
Spring @Transactional
2011-08-01 11:53 1808Spring事务的传播行为 在service类前加上@ ... -
spring mvc java.lang.IllegalStateException: Errors/BindingResult argument declar
2011-01-21 10:21 5052关于BindingResult Spring ... -
kaptcha 验证码在spring mvc 中的使用
2010-11-11 14:46 15404kaptcha 是一个非常实用的验证码生成工具。有了它,你可 ... -
@ResponseBody注解
2010-11-04 17:44 29820在SpringMVC中可以在Contr ... -
spring 标签介绍
2010-10-27 14:42 3034Spring 标记库分类如下: 1、spring:has ... -
spring roo
2010-10-22 14:50 3154Spring Roo 是一种 Spring 开发的辅助工具,当 ... -
spring mvc 实现的验证码功能
2010-10-19 15:56 8810import java.awt.BasicStroke; i ... -
spring3 Validation, Data Binding, and Type Conversion
2010-10-18 17:52 38075. Validation, Data Binding, ... -
spring 基于注解的控制器配置
2010-10-18 16:10 385913.12. 基 于注解的控制器配置 现时对于一些类型的配 ... -
打散 <mvc:annotation-driven>
2010-10-18 13:10 4762Spring3.0的基于注解的MVC非常好用,特别在加入了新的 ... -
spring mvc使用注解后的校验和绑定处理
2010-10-12 15:18 1389spring mvc使用注解后,依然可以使用自带的Valida ... -
使用 Spring 2.5 基于注解驱动的 Spring MVC
2010-10-12 10:45 1559概述 继 Spring 2.0 对 Spring MV ... -
Spring MVC的表单控制器
2010-10-11 15:36 3927概述 大多数Web应 ... -
context:component-scan
2010-10-08 13:33 44631. 扫描过滤方式 过滤器类型 说明 注释 假如 com.ba ... -
Spring MVC
2010-09-21 16:12 4404Spring提供了一个细致完整的MVC框架。该框架为模型、视图 ... -
领略Spring 3.x 时代的Spring MVC
2010-09-21 16:07 2000鼎鼎大名的Spring框架3.0版在12月5日由其作者之 ... -
Spring3 MVC Restful 多请求类型(json,xml,k-v),多视图配置(Json,Xml,JSP,Freemarker,Volacity等)
2010-09-13 10:59 5850beans xmlns="http://www.sp ... -
Spring3 MVC (三)---请求处理方法 参数及返回值总结
2010-09-13 10:50 8559@RequestMapping("/xx ... -
Spring3 MVC 注解(二)---@RequestMapping
2010-09-13 10:47 155641 问题:有多个 @RequestMapping @ ... -
Spring3 MVC 注解(一)---注解基本配置及@controller和 @RequestMapping 常用解释
2010-09-13 10:46 93107一:配置web.xml 1)问题:spri ...
相关推荐
如果你手上有一本《Spring in Action》, 那么你最好从第三部分"Spring 在 Web 层的应用--建立 Web 层"开始看, 否则那将是一场恶梦! 首先, 我需要在你心里建立起 Spring MVC 的基本概念. 基于 Spring 的 Web 应用...
spring mvc 实战指南和spring mvc入门:图解加源代码
个人认为相当适合入门和知识巩固!! 一、前言 二、spring mvc 核心类与接口 ...十九、 <mvc:annotation-driven /> 到底做了什么工作 二十、 本文中springMVC.xml配置文件是核心,这里给一个下载地址
第一章:Spring Web MVC入门 包括:是什么、能干什么、有什么、各个组成部分的功能、HelloWorld等 第二章:理解DispatcherServlet 包括:功能、配置、上下文关系、初始化顺序等 第三章:注解式控制器开发详解 ...
spring mvc入门小例子spring mvc入门小例子spring mvc入门小例子spring mvc入门小例子spring mvc入门小例子
spring mvc入门示例
Spring MVC 教程 快速入门 深入分析 目录 一、前言 二、spring mvc 核心类与接口 三、spring mvc 核心流程图 四、spring mvc DispatcherServlet说明 五、spring mvc 双亲上下文的说明 六、springMVC-mvc.xml 配置...
《Spring MVC+MyBatis开发从入门到项目实战》分为4篇。第1篇是Java开发环境的搭建,包括JDK的下载与安装、环境变量的配置、MyEclipse的下载与基本配置。第2篇是MyBatis技术入门,包括剖析JDBC的弊端、MyBatis的背景...
39页的PDF文档,简单详细的介绍了spring MVC的入门知识。 对spring MVC的入门有很大的帮助。
Spring MVC MyBatis开发从入门到项目实战
有没有一开始搞spring mvc时,被搞得心态崩溃,这个就发生在了我身上;难得最后走通了,就自我记录备案,权当我的学习笔记了。除了弄一个mvc xml配置,后面还会弄一个纯java配置的mvc。下面是操作指南: ...
spring mvc经典入门教程好好看吧!你会上手的
博客:“Spring Boot / Spring MVC 入门实践 (三) : 入门项目介绍与用户注册登录的实现”的源码
Spring MVC入门实例
Java EE 框架整合 开发入门到实战-Spring+Spring MVC+MyBatis微课版复习笔记
Spring MVC 入门教程
SPRING MVC入门实例,适合入门者
web一体化:第三讲spring mvc 入门.pptx
spring mvc 入门介绍