搭建SpringMVC

1、新建Module

1.新建Module,類型以下圖所示:java

Image(25)

Image(26)

 

2.爲項目添加Spring框架支持,操做步驟以下:web

首先在Module右鍵->Add Framework Support:spring

Image(28)

 

2.Spring節點,選中Create empty spring-config.xmlspring-mvc

Image(29)

3.微調站點代碼結構,添加controller和jsp文件存放目錄。調整後的代碼結構以下:mvc

Image(30)

4.在pom.xml引入springmvc依賴包:app

<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-webmvc</artifactId>
  <version>4.3.5.RELEASE</version>
</dependency>

2、配置web.xml

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

  • url-pattern爲 /表示全部請求都被映射到DispatcherServlet。
  • 按照約定,初始化時會自動查找WEB-INF下命名規則爲{servletname}-servlet.xml的文件,本例中對應springmvc-servlet.xml。

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>
複製代碼

在該項目中咱們使用第一種方式。

3、controller和view

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>
複製代碼

4、運行

測試 url

http://localhost:8091/category/detail/

http://localhost:8091/category/edit/

相關文章
相關標籤/搜索