Spring MVC學習路(二) 設置配置文件

添加須要的包後,在web.xml中添加以下配置web

<!-- Spring MVC配置 -->
  <servlet>
  	<servlet-name>springMVC</servlet-name>
  	<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  	<init-param>
  		<param-name>contextConfigLocation</param-name>
  		<param-value>classpath:spring/ApplicationContext-mvc.xml</param-value>
  	</init-param>
  	<load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
  	<servlet-name>springMVC</servlet-name>
  	<url-pattern>/</url-pattern>
  </servlet-mapping>
  
  <!-- Spring配置 -->
  <listener>
  	<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
  
  <!-- 指定Spring Bean的配置文件所在目錄。默認配置在WEB-INF目錄下 -->
  <context-param>
  	<param-name>contextConfigLocation</param-name>
  	<param-value>classpath:spring/ApplicationContext.xml</param-value>
  </context-param>

注意裏面有一個<load-on-startup> 表示啓動容器時初始化該Servlet;spring

自此請求已交給Spring Web MVC框架處理,所以咱們須要配置Spring的配置文件,默認DispatcherServlet會加載WEB-INF/[DispatcherServlet的Servlet名字]-servlet.xml配置文件。本示例爲WEB-INF/ springMVC-servlet.xml。spring-mvc


由於我在mvc

<servlet>
  	<servlet-name>springMVC</servlet-name>
  	<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  	<init-param>
  		<param-name>contextConfigLocation</param-name>
  		<param-value>classpath:spring/ApplicationContext-mvc.xml</param-value>
  	</init-param>
  	<load-on-startup>1</load-on-startup>
  </servlet>

中配置了指定的路徑,因此個人WEB-INF/ springMVC-servlet.xml轉移到了class路徑下的spring包內的app

其餘參數:框架

參數 做用
contextClass 實現WebApplicationContext接口的類,當前的servlet用它來建立上下文。若是這個參數沒有指定, 默認使用XmlWebApplicationContext。
contextConfigLocation 傳給上下文實例(由contextClass指定)的字符串,用來指定上下文的位置。這個字符串能夠被分紅多個字符串(使用逗號做爲分隔符) 來支持多個上下文(在多上下文的狀況下,若是同一個bean被定義兩次,後面一個優先)。
namespace WebApplicationContext命名空間。默認值是[server-name]-servlet。

ApplicationContext-mvc.xml中
jsp

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:mvc="http://www.springframework.org/schema/mvc"
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd	
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">

    <!-- 啓用spring mvc 註解 -->
    <context:annotation-config />
	<mvc:annotation-driven />  
	<!--<mvc:default-servlet-handler/>-->
	<!-- 設置使用註解的類所在的jar包 -->
    <context:component-scan base-package="com.test"></context:component-scan>
    
     <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" />
     
     <!--   在Spring4以後也取消
  
     HandlerAdapter   
    <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter" /> 
	 完成請求和註解POJP的映射 
	<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"></bean>
    
    --><!-- 對轉向頁面的路徑解析。prefix:前綴, suffix:後綴 -->
  	<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  		<property name="prefix" value="/"></property>
  		<property name="suffix" value=".jsp"></property>
  	</bean>
</beans>
<mvc:annotation-driven />

一直出現url

No mapping found for HTTP request with URI [/SpringMVCTest/test] in DispatcherServlet with name 'springMVC'spa

注意這段代碼,,本人由於未寫這段話硬生生的查了兩個多小時的資料才弄好。code


DispatcherServlet會利用一些特殊的bean來處理Request請求和生成相應的視圖返回。


關於視圖的返回,Controller只負責傳回來一個值,而後到底返回的是什麼視圖,是由視圖解析器控制的,在jsp中經常使用的視圖解析器是InternalResourceViewResovler,它會要求一個前綴和一個後綴

相關文章
相關標籤/搜索