Spring MVC笔记

原创 2005年02月27日 23:03:00
尝试按照xiaxin的文档来写一个使用了spring MVC的登陆。
包含在文档http://www.xiaxin.net/Spring_Dev_Guide.rar中。
1。环境
Tomcat5.0以上。因为该示例程序使用了JSP Standard Tag Library (JSTL),可我一直用的是Tomcat4,郁闷。
2。jar包
    spring.jar
    commons-logging.jar
    jstl.jar 从spring-framework目录/lib/j2ee下获得
    standard.jar 从spring-framework目录/lib/jakarta-taglibs下获得(好像这个不需要,没装Tomcat5,没试验)
3。配置web.xml
 <servlet>
  <servlet-name>Dispatcher</servlet-name>
  <servlet-class>
   org.springframework.web.servlet.DispatcherServlet
  </servlet-class>
  <init-param>
   <param-name>contextConfigLocation</param-name>
   <param-value>/WEB-INF/Config.xml</param-value>
  </init-param>
 </servlet>
 
 <servlet-mapping>
  <servlet-name>Dispatcher</servlet-name>
  <url-pattern>*.do</url-pattern>
 </servlet-mapping>
DispatcherServlet根据Config.xml来调度,将请求分发给各个逻辑处理单元,相当于Struts中的ActionServlet。
4。配置Config.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
 "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
 <!--Definition of View Resolver -->
 <bean id="viewResolver"
  class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  <property name="viewClass">
   <value>org.springframework.web.servlet.view.JstlView</value>
  </property>
  <property name="prefix">
   <value>/WEB-INF/view/</value>
  </property>
  <property name="suffix">
   <value>.jsp</value>
  </property>
 </bean>
  
 <!--Request Mapping -->
 <bean id="urlMapping"
  class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
  <property name="mappings">
   <props>
    <prop key="/login.do">LoginAction</prop>
   </props>
  </property>
 </bean>
 
 <!---Action Definition-->
 <bean id="LoginAction"
  class="com.maxway.action.LoginAction">
  <property name="commandClass">
   <value>com.maxway.action.LoginInfo</value>
  </property>
  <property name="fail_view">
   <value>loginfail</value>
  </property>
  <property name="success_view">
   <value>main</value>
  </property>
 </bean>
</beans>
Config.xml项目说明
⑴Resolver设定
Resolver将把输出结果与输出界面相融合,为表现层提供呈现资源。
⑵ View Resolver的viewClass参数
这里我们使用JSP页面作为输出,因此,设定为:
org.springframework.web.servlet.view.JstlView
其余可选的viewClass还有:
 org.springframework.web.servlet.view.freemarker.FreeMarker
View(用于基于FreeMarker模板的表现层实现)
 org.springframework.web.servlet.view.velocity.VelocityView
(用于基于velocity模板的表现层实现)
等。
⑶⑷ View Resolver的prefix和suffix参数
指定了表现层资源的前缀和后缀,运行时,Spring 将为指定的表现层资源自动追加前缀和后缀,以形成一个完整的资源路径。另参见⑻
⑸ “请求/处理单元”关系映射
可以看到,这里我们将“/login.do”请求映射到处理单元LoginAction。
<props>节点下可以有多个映射关系存在,目前我们只定义了一个。
⑹ LoginAction定义
这里定义了逻辑处理单元LoginAction 的具体实现,这里,LoginAction 的实现类为com.maxway.action.LoginAction。
⑺ LoginAction的请求数据对象
commandClass 参数源于LoginAction 的基类BaseCommandController,BaseCommandControlle 包含了请求数据封装和验证方法( BaseCommandController.bindAndValidate ) , 它将根据传入的HttpServletRequest构造请求数据对象。
⑻ 返回视图定义
对于这里的LoginAction 而言,有两种返回结果,即登录失败时返回错误界面,登录成功时进入系统主界面。对应我们配置了fail_view、success_view两个自定义参数。参数值将由Resolver进行处理,为其加上前缀后缀,如对于fail_view而言,实际的视图路径为/WEB-INF/view/loginfail.jsp。之后,Resolver 会将LoginAction的返回数据与视图相融合,返回最终的显示界面。

PS:
    1。原文<value>org.springframework.web.servlet.view.JstlView</value>出分了3行写,但我在Tomcat4下运行时好像连前后的空格都一起识别了,导致找不到这个类,不能正常初始化,改为紧凑格式就没事了。
    2。
    <property name="commandClass">
        <value>com.maxway.action.LoginInfo</value>
    </property>
这里相当于Struts中的Formbean,不过不需要继承任何东西,非常简单的get/set就可以了,很不错。
5。写逻辑处理单元
本例中就是验证单元了。
    1。继承org.springframework.web.servlet.mvc.SimpleFormController
需要重载onSubmit,相当于Struts的execute
有两种方式
protected ModelAndView onSubmit(Object cmd,BindException ex)

protected ModelAndView onSubmit(HttpServletRequest request,HttpServletResponse response,Object cmd,BindException ex)
后者优先级高,如果同时存在则执行后者。
    Dispatcher从HttpServletRequestDispatcher,将对传入的HttpServletRequest进行封装,形成请求数据对象,即传入的object。
    2。返回处理结果也有两种方式:
        1、返回一个ModelAndView对象
          public ModelAndView(String viewname)
          返回界面无需通过结果数据集进行填充。
          public ModelAndView(String viewname, Map model)
          返回界面由指定的结果数据集加以填充。可以看到,结果数据集采用了Map接口实现的数据类型。其中包含了返回结果中的各个数据单元。关于结果数据集在界面中的填充操作,可参见下面关于返回界面的描述。
          上面这两个版本的构造子中,通过viewname指定了表示层资源。
          另外,我们也可以通过传递View对象指定表示层资源。
          public ModelAndView(View view)
          public ModelAndView(View view, Map model)
        2、在带有HttpServletRequest参数的onSubmit方法实现中,通
过HttpServletRequest/HttpServletResponse完成forward/redirect功
能,这两种途径可以达到同样的效果。
6。页面显示
  可以直接使用 ModelAndView中的Map
附:UML图

================================
spring有一个自带的MVC教程,step by step,由简单到复杂,好像很不错。
spring有个好处就是,spring由多个模块组成,我们可以只使用其中一部分功能,spring也提供了几中jar包的格式,spring.jar是包含所有spring功能的包,还有其他的各模块的单独的包。
其实spring的mvc和struts还是比较相似的,毕竟MVC也就是这么回事,但某写方面spring的mvc框架做的还是比Struts的要好一些,比如类似formbean的功能。spring没有自己的taglib库,不过看起来jstl这个taglib也比较好用的样子。
spring的mvc只是其众多功能的一小部分。
本文很多内容是从xiaxin的文档中摘下来的,勉强算是笔记吧。

springmvc 学习笔记最全整理

http://www.admin10000.com/document/6436.html
  • chen3749102
  • chen3749102
  • 2016年10月14日 11:18
  • 154

学习SpringMVC笔记(全)

SpringMVC运行性能远大于Struts2,Struts2运行效率低是由于它的ognl和值栈导致的,当然不是说Struts2不优秀,它的拦截器思想还是非常不错的。做网站的话用springMVC比较...
  • CodingAlarm
  • CodingAlarm
  • 2015年04月03日 22:03
  • 1201

Spring MVC 学习笔记(一)

(* 笔记内容均来自 尚硅谷 佟刚老师的视频,例子是在学习中照着敲的) 内容概要 • 1.SpringMVC概述 • 2.SpringMVC的HelloWorld • 3.使用@RequestMapp...
  • u011870547
  • u011870547
  • 2016年01月07日 14:50
  • 1797

SpringMVC入门笔记

新猿的学习笔记,如有漏洞请多指教,求轻拍 用的tomcat、myeclipse 阅前声明:     因为初学SpringMVC,无可避免的要从网上看一些相关入门介绍,所以以下内容里多多少说会掺杂一些前...
  • u010997403
  • u010997403
  • 2013年11月14日 19:01
  • 2532

springmvc学习笔记(22)-springmvc开发小结

本文对springmvc系列博文进行小结 springmvc框架 注解开发 使用注解方式的处理器映射器和适配器 注解开发中参数绑定 springmvc和struts2区别 校验 数据回显 异常处理 ...
  • h3243212
  • h3243212
  • 2016年03月15日 11:31
  • 3253

Spring MVC快速入门笔记

目录 一、前言 二、spring mvc 核心类与接口 三、spring mvc 核心流程图 四、spring mvc DispatcherServlet说明 五、spring mvc...
  • lihonghquan
  • lihonghquan
  • 2015年07月19日 11:25
  • 284

【笔记】Spring MVC学习指南(三)SpringMVC介绍

第三章,主要使用SpringMVC来实现第二章的小程序,进而通过对比体现SpringMVC的好处 先来看目录结构,可以看出原先自定义的Controller接口已经删除,取而代之的会是Spring自...
  • WSKinght
  • WSKinght
  • 2015年09月23日 13:15
  • 1265

史上最全的SpringMVC学习笔记

史上最全的SpringMVC学习笔记 本文地址:一、SpringMVC基础入门,创建一个HelloWorld程序1.首先,导入SpringMVC需要的jar包。 2.添加Web.xml配置文件...
  • shanglianlm
  • shanglianlm
  • 2015年12月10日 22:10
  • 607

SpringMVC学习笔记(一): 基础知识

spring-mvc的主要结构: 1、DispatcherServlet:中央控制器。 1)把请求给转发到具体的控制类(即具体的Controller)。 2)需要在web.xml 中配置,类似于str...
  • u012228718
  • u012228718
  • 2015年01月26日 20:31
  • 1718

Spring学习笔记之Spring MVC 入门教程

原文:Spring学习笔记之Spring MVC 入门教程 源代码下载地址 1.视图层view:3个视图页 index.jsp 首页,实现登陆表单的提交 success.jsp 成...
  • yaerfeng
  • yaerfeng
  • 2016年07月02日 10:07
  • 625
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Spring MVC笔记
举报原因:
原因补充:

(最多只允许输入30个字)