YH Lin
5 min readAug 26, 2020

第一隻SpringMVC

在Eclipse 中先建立一個Dynamic Web Project

並選擇自動產生web.xml

在Config 中選convert to Maven Project,載入相關的jar

<properties><spring.version>5.2.3.RELEASE</spring.version></properties><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version><scope>test</scope></dependency><! — Spring dependencies →<dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>${spring.version}</version></dependency>
<dependency>
<groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>${spring.version}</version></dependency></dependencies>

接下來 配置Web.xml

<servlet><servlet-name>dispatcher</servlet-name><servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
</servlet><servlet-mapping><servlet-name>dispatcher</servlet-name><url-pattern>*.action</url-pattern></servlet-mapping>

其中org.springframework.web.servlet.DispatcherServlet 的類別可參考下圖

接下來配置spring-mvc.xml,在Java Resources 中建立一個資料夾,存放spring-mvc.xml

建立spring-mvc.xml 檔案內容:加上

<context:component-scan base-package=”com.Ian.controller”></context:component-scan>,

使其去讀取com.Ian.controller 的值

調整web.xml 使其可以讀取到spring-mvc.xml

建立controller

利用@Controller 宣告這個類別為一個controller

@RequestMapping ,網址中有hello的會轉到hello()執行

利用ModelAndView.addObject()將資料包在key and value中

利用setViewName將結果導到/WEB-INF/jsp/success.jsp

package com.Ian.controller;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.servlet.ModelAndView;@Controllerpublic class HelloController {@RequestMapping(“/hello”)    public ModelAndView hello() {            System.out.println(“Run HelloController “);            ModelAndView mv = new ModelAndView();            mv.addObject(“message”,” 媽~我在這裡”);           mv.setViewName(“/WEB-INF/jsp/success.jsp”);          return mv;}}

執行訪問

http://localhost:8080/MyWeb/hello.action

No responses yet