spring3.0.5的mvc使用(exception,json,annotation,xml,upload/download)

    由于公司的项目要使用spring的mvc,所以特意写了这个教程,与大家分享。在这里我只给出思路和源代码,不做过多的代码粘贴,请大家自行消化理解。
    demo代码中,包含了exception,json,annotation,xml等诸多mvc的用法,为了更好的体验,请下载最高版本的demo代码。

一 环境
1)tomcat6.0.32
2)jdk1.6.0.24
3)eclipse3.6.2_javaee

二 包说明,共10个包
1)log4j
log4j-1.2.16.jar

2)spring的logging辅助
commons-logging-1.1.1.jar

3)jstl标签包
jstl-1.2.jar

4)spring核心包
org.springframework.asm-3.0.5.RELEASE.jar
org.springframework.beans-3.0.5.RELEASE.jar
org.springframework.context-3.0.5.RELEASE.jar
org.springframework.core-3.0.5.RELEASE.jar
org.springframework.expression-3.0.5.RELEASE.jar
org.springframework.web-3.0.5.RELEASE.jar

5)spring mvc包
org.springframework.web.servlet-3.0.5.RELEASE.jar

三 配置步骤
1.配置log4j,将log4j.properties(必须)放到src下面;commons-logging.properties(选配,不是必须的)放到src下面

2.配置WEB-INF/web.xml
1)log4j配置,在最前(必须)
2)spring配置,此处指定的文件名,一定要和下面的spring mvc中的 servlet-name中一致,格式为"名字-servlet.xml",使用contextConfigLocation参数为上下文载入器指定一个或多个Spring配置文件
3)spring 上下文载入器
4)Spring MVC的核心Servlet配置

3.配置WEB-INF/spring-servlet.xml
1)地址映射(xml形式必须要在此文件中;annotation的不需要,但需要配置context:component-scan/>)
2)viewResolver的配置

四 开发
1)model,普通的POJO类
2)view,JSP页面,或者HTML,PHP等
3)controller,xml形式的继承 org.springframework.web.servlet.mvc.AbstractController;annotation的不用继承

五 流程
1)请求过来,DispatcherServlet(单例)根据URL查找HandlerMapping,找出对应的Controller;
2)Controller会返回ModelAndView(模型数据和视图)给DispatcherServlet;
3)DispatcherServlet将ModelAndView相关内容通过view展示出来.


六 总结
xml形式的用的比较少,现在大多数系统中一般都使用annotation形式的配置。他们的配置区别在于
1)RequestMapping的配置是在spring-servlet.xml中,还是在controller里面;
2)controller里面用ModelAndView,还是其他Model,或者url String

七 补充
2011-02-09
1)优化结构,使mvc的配置文件与bean的配置文件分开来(applicationContext.xml,spring-servlet.xml);
2)修改log的使用方式,通过commons-logging与log4j关联使用;
3)增加aonntation的使用方式;
4)上传最新修改过的源代码,包括annotation和xml形式;

2011-02-26
1)上传最新的DEMO,里面增加了动态地址引用及与json集成使用的方式;

2011-03-15
1)spring mvc的深入应用,包括excpetion,json,mvc映射的细分;
2)1.2版本的demo上传;

2011-03-17
1)1.3版本的demo上传;
2)更新exception的相关代码,进一步说明excpetion的处理机制;

2011-04-04
1)增加spring mvc中上传/下载的demo;




作者简介
昵称:澳洲鸟
姓名:朴海林
QQ:85977328
MSN:6301655@163.com

转载请注明出处
分享到:
评论
10 楼 followwithme 2011-11-13  
谢谢分享,正好用得上。。
9 楼 suyulin6688 2011-05-30  
85977328 写道
liu2511981 写道
请问,楼主,试没试 PUT????!


我试PUT 有问题。。

我一般不用put,直接submit过来,然后用request来取得输入
不过我会尝试一下,等试验时候告诉你结果


put和delete都没问题。

需要在 web.xml 里面配置一个 filter:

 
Java代码  收藏代码
  1. <!-- 支持put,delete等method -->    
  2.   <filter>    
  3.     <filter-name>hiddenHttpMethodFilter</filter-name>    
  4.     <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>    
  5.   </filter>  
  6.   
  7.   <filter-mapping>    
  8.     <filter-name>hiddenHttpMethodFilter</filter-name>    
  9.     <servlet-name>springmvc</servlet-name>    
  10.   </filter-mapping>  


jsp 页面里面,加一个 name="_method", value="put" 的 hidden 域:

Java代码  收藏代码
  1. <form:form commandName="customer" action="${ctx}/customer/${customer.id}">  
  2.   <input type="hidden" name="_method" value="put"/>  
  3.   loginName: <form:input path="loginName" /><form:errors path="loginName" cssClass="errorBox"/>  
  4.   realName:  <form:input path="realName" /><form:errors path="realName" cssClass="errorBox"/>  
  5. </form:form>  
 

posted @ 2012-02-24 20:00  张良  阅读(702)  评论(0编辑  收藏  举报