请选择 进入手机版 | 继续访问电脑版
本站特色:极好的技术研究氛围!所有技术交流,必有回复!

疯狂Java联盟

 找回密码
 加入联盟
查看: 2331|回复: 0

Spring MVC连载(1)-- 配置文件springmvc-config.xml详解

  [复制链接]
发表于 2017-11-18 10:46:54 | 显示全部楼层 |阅读模式
本帖最后由 xiaowenji 于 2017-11-21 18:58 编辑

本文节选自《Spring+MyBatis企业应用实战》
Spring+MyBatis企业应用实战立体图.jpg
京东购买地址:https://item.jd.com/12111732.html

Spring MVC配置文件springmvc-config.xm标准配置如下:
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4.     xmlns:p="http://www.springframework.org/schema/p"
  5.     xmlns:mvc="http://www.springframework.org/schema/mvc"
  6.     xmlns:context="http://www.springframework.org/schema/context"
  7.     xsi:schemaLocation="
  8.         http://www.springframework.org/schema/beans
  9.         http://www.springframework.org/schema/beans/spring-beans.xsd
  10.         http://www.springframework.org/schema/mvc
  11.         http://www.springframework.org/schema/mvc/spring-mvc.xsd     
  12.         http://www.springframework.org/schema/context
  13.         http://www.springframework.org/schema/context/spring-context.xsd">
  14.         
  15.     <!-- spring可以自动去扫描base-pack下面的包或者子包下面的java文件,
  16.         如果扫描到有Spring的相关注解的类,则把这些类注册为Spring的bean -->
  17.     <context:component-scan base-package="org.fkit.controller"/>
  18.     <!-- 默认配置方案 -->
  19.     <mvc:annotation-driven/>
  20.     <!-- 静态资源处理 -->
  21.     <mvc:default-servlet-handler/>
  22.    

  23.     <!-- 视图解析器  p:prefix属性表示前缀  p:suffix 表示后缀  -->
  24.      <bean id="viewResolver"
  25.           class="org.springframework.web.servlet.view.InternalResourceViewResolver"
  26.           p:prefix="/WEB-INF/content/" p:suffix=".jsp"/>
  27.    
  28. </beans>
复制代码
1.
<context:component-scan/>元素的功能为:启动包扫描功能,以便注册带有@Controller、@Service、@repository、@Component等Spring注解的类成为Spring的Bean。base-package属性指定了需要扫描的类包,类包及其递归子包中所有的类都会被处理。需要注意的是,应该将所有控制器类都放在基本包下,并且指定扫描该包,本例是org.fkit.controller,而不应该指定扫描org.fkit包,以免Spring MVC扫描了无关的包。
2.
<mvc:annotation-driven> 是一种简写形式是一种简写形式,是Spring MVC应用默认的配置方案。<mvc:annotation-driven>会自动注册RequestMappingHandlerMapping与RequestMappingHandlerAdapter两个Bean,这是Spring MVC为@Controllers分发请求所必需的,并提供了数据绑定支持、@NumberFormatannotation支持、@DateTimeFormat支持、@Valid支持、读写XML的支持(JAXB)和读写JSON的支持(默认Jackson)等功能。
3.

<mvc:default-servlet-handler/>是Spring MVC的静态资源处理,在web.xml中,如果将DispatcherServlet请求映射配置为"/",则Spring MVC将捕获Web容器所有的请求,包括静态资源的请求,而引入类似<script type="text/javascript"src= "js/jquery-1.11.0.min.js"/>这种静态资源文件的时候,DispatcherServlet会将“/”看成请求路径,找不到它的时候会导致提示404错误。当在springmvc-config.xml中配置<mvc:default-servlet-handler/>后,会在Spring MVC上下文中定义一个org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler,它就像一个检查员,对进入DispatcherServlet的URL进行筛查,如果发现是静态资源的请求,就将该请求转由Web应用服务器默认的Servlet处理;如果不是静态资源的请求,才由DispatcherServlet继续处理。
在引入静态文件,例如<script type="text/javascript"src= "js/jquery-1.11.0.min.js"/>这种js时,需要加入<mvc:default-servlet-handler/>从而使用默认的Servlet来响应静态文件。如果没有加入该配置,则执行时页面会报404错误,而控制台会提出警告:
No mapping found for HTTP request with URI [/ResponseBodyTest/ js/jquery-1.11.0.min.js] in DispatcherServlet with name 'springmvc
4.
<bean id="viewResolver"
          class="org.springframework.web.servlet.view.InternalResourceViewResolver"
          p:prefix="/WEB-INF/content/" p:suffix=".jsp"/>
以上代码配置了视图解析器InternalResourceViewResolver来解析视图,将View呈现给用户。视图解析器中配置的prefix属性表示视图的前缀,suffix表示视图的后缀,假如返回的视图字符串是“helloWorld”,经过视图解析器之后,则视图的完整路径为:/WEB-INF/ content/helloWorld.jsp。




您需要登录后才可以回帖 登录 | 加入联盟

本版积分规则

视频、代码、电子书下载
请关注"疯狂图书"公众号
QQ交流1群: 545923995  未满
微信群请扫二维码
QQ交流1群:
545923995
(未满)

小黑屋|手机版|Archiver|疯狂Java联盟 ( 粤ICP备11094030号 )

GMT+8, 2019-12-12 18:49 , Processed in 0.451011 second(s), 7 queries , File On.

快速回复 返回顶部 返回列表