当前位置: 代码迷 >> JavaScript >> spring3.0.5的mvc施用(exception,json,annotation,xml,upload/download)
  详细解决方案

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

热度:900   发布时间:2012-09-08 10:48:07.0
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

转载请注明出处
1 楼 caoyangx 2011-02-05  
还继承org.springframework.web.servlet.mvc.AbstractController呢?
那你们公司用spring2就可以了。
2 楼 85977328 2011-02-09  
caoyangx 写道
还继承org.springframework.web.servlet.mvc.AbstractController呢?
那你们公司用spring2就可以了。

公司用的是 annotation
我接下来就会把 annotation的方式 给完善
3 楼 tomliguocai 2011-02-10  
annotation 好用是好用,个人感觉还是用XML配制灵活些,容易找相应关系
4 楼 liu2511981 2011-03-10  
请问,楼主,试没试 PUT????!


我试PUT 有问题。。
5 楼 85977328 2011-03-12  
liu2511981 写道
请问,楼主,试没试 PUT????!


我试PUT 有问题。。

我一般不用put,直接submit过来,然后用request来取得输入
不过我会尝试一下,等试验时候告诉你结果
6 楼 hongshenghome 2011-03-15  
学习中,谢谢分享!!
7 楼 yuancheng320113 2011-03-16  
学习中,谢谢分享!!
8 楼 ericslegend 2011-05-30  
哥们儿,你百度的?
9 楼 suyulin6688 2011-05-30  
85977328 写道
liu2511981 写道
请问,楼主,试没试 PUT????!


我试PUT 有问题。。

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


put和delete都没问题。

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

 
<!-- 支持put,delete等method -->  
  <filter>  
    <filter-name>hiddenHttpMethodFilter</filter-name>  
    <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>  
  </filter>

  <filter-mapping>  
    <filter-name>hiddenHttpMethodFilter</filter-name>  
    <servlet-name>springmvc</servlet-name>  
  </filter-mapping>


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

<form:form commandName="customer" action="${ctx}/customer/${customer.id}">
  <input type="hidden" name="_method" value="put"/>
  loginName: <form:input path="loginName" /><form:errors path="loginName" cssClass="errorBox"/>
  realName:  <form:input path="realName" /><form:errors path="realName" cssClass="errorBox"/>
</form:form>

10 楼 followwithme 2011-11-13  
谢谢分享,正好用得上。。
  相关解决方案