1.新建Module,類型以下圖所示:java
2.爲項目添加Spring框架支持,操做步驟以下:web
首先在Module右鍵->Add Framework Support:spring
2.Spring節點,選中Create empty spring-config.xmlspring-mvc
3.微調站點代碼結構,添加controller和jsp文件存放目錄。調整後的代碼結構以下:mvc
4.在pom.xml引入springmvc依賴包:app
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>4.3.5.RELEASE</version> </dependency>
Spring MVC自帶了一個Dispatcher Servlet,全名是org.springframework.web.servlet.DispatcherServlet。框架
1.咱們在web.xml中配置節點servlet和servlet-mapping:jsp
<servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
2.說明:ide
3.若是想放在其餘目錄下,須要在servlet中的init-param節點進行設置,param-name必須爲contextConfigLocation,param-value爲目標路徑。好比咱們想把spring配置文件放在/WEB-INF/config/springmvc.xml,能夠以下配置:測試
<servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/config/springmvc.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet>
在該項目中咱們使用第一種方式。
MVC框架有model、view、controller三部分組成。model通常爲一些基本的Java Bean,controller用於處理網站的請求,view用於進行相應的頁面顯示。
1.controller
在src\main\java中新建一個package名稱爲com.cathy.controller,而後新建類CategroyController.java。
@Controller public class CategoryController { @RequestMapping(value = "/category/edit") public String Edit() { return "edit"; } @RequestMapping("/category/detail") public String Detail(){ return "detail"; } }
幾點說明:
①@Controller註解:採用註解的方式,能夠明確地定義該類爲處理請求的Controller類;
②@RequestMapping()註解:用於定義一個請求映射,value爲請求的url;
③return "edit":處理完該請求後返回的頁面,此請求返回 edit.jsp頁面。
2.view
在WEB-INF/jsp/目錄下新建兩個jsp頁面:edit.jsp和detail.jsp
3.配置springmvc-servlet.xml
回到mvc-dispatcher-servlet.xml,進行相關配置。首先加入component-scan標籤,指明controller所在的包,並掃描其中的註解
<context:component-scan base-package="com.cathy.controller"></context:component-scan> <mvc:annotation-driven></mvc:annotation-driven>
而後配置ViewResolver
<!--View Resolver--> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/jsp/"/> <property name="suffix" value=".jsp"/> </bean>
3.遇到問題:
①運行報錯:
org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'cacheManager' available
②解決方法:
修改springmvc-servlet.xml
xmlns:mvc="http://www.springframework.org/schema/cache
改成
xmlns:mvc="http://www.springframework.org/schema/mvc
xsi也相應修改
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"
③完整的xml文件以下:
<?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:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"> <!--controller包--> <context:component-scan base-package="com.cathy.controller"></context:component-scan> <!--開啓註解--> <!--<mvc:annotation-driven></mvc:annotation-driven>--> <!--View Resolver--> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/jsp/"/> <property name="suffix" value=".jsp"/> </bean> </beans>
測試 url
http://localhost:8091/category/detail/
http://localhost:8091/category/edit/