Spring 4.0.8 MVC介紹

1.請先下載所需要的 jar

2.將上述 jar 檔案放到 WEB-INF/lib 中

spring 4.0.8 MVC 所需要的 jar

3. 打開在 WEB-INF 中的 web.xml  加入  spring 的設定

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
 <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>*.do</url-pattern>
 </servlet-mapping>
</web-app>

4.在 WEB-INF 中加入 dispatcher-servlet.xml

 <?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd">
  
  
  
 <context:component-scan base-package="com.tcg.action" />
<mvc:annotation-driven />
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"
 p:prefix="/"
 p:suffix=".jsp"/>
 
</beans>

上方的   <context:component-scan base-package=”com.tcg.action” />

spring 會自動掃描該 package 中的 class

5. 接著要寫Java 程式了, 也就是在 com.tcg.action 中寫上 spring 的 controll

package com.tcg.action;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
@Controller
@SessionAttributes("carmemberid")
public class LoginAction {
@RequestMapping("login")
 public String hello(@RequestParam(value = "carmemberid" ) String carmemberid , 
 @RequestParam(value = "paswd", required = false ) String paswd
 , Model m) {
  
  
 String nextPage ="login";
 if(paswd!= null){
    m.addAttribute("paswd", paswd);//使用範圍 request
    m.addAttribute("carmemberid", carmemberid); //使用範圍 session
 }else{//使用者不存在
 nextPage ="reLogin";
 }
 return nextPage;
 }
 
 
}
  • 在class 上方宣告 @Controller  表示要將此class 設定為 spring MVC 中的 controll。
  • 宣告@SessionAttributes(“carmemberid”) 表示程式內會設定 carmemberid 設定到 session 中, 當執行此行會將值設定完成      m.addAttribute(“carmemberid”, carmemberid);
  • method 上方宣告 @RequestMapping(“login”) 表示執行的網址
  • method 中的參數(@RequestParam(value = “carmemberid” ) String carmemberid ,
    @RequestParam(value = “paswd”, required = false ) String paswd
    , Model m)
  • @RequestParam 表示網頁傳來的參數名稱 ,預設是一定會有傳過來, 若沒有傳的話, 會有錯誤訊息發生。
  • @RequestParam(value = “paswd”, required = false ) 表示此參數, 不一定需要傳過來。
  • Model m  => 可以將訊息或是物件設定進去, 前端即可使用或顯示。

6. 程式內最後回傳兩個值 login  or reLogin 因此, 我們需要準備兩個 jsp

login.jsp  and  reLogin.jsp

可以在 login.jsp 中使用 EL 語法 即可顯示  放在 model 中的資料

如: ${carmemberid}     ${paswd}

7.網址中輸入 login.do  => 會發生錯誤 因為需要有 carmemberid 的參數

所以最好輸入為  login.do?carmemberid=00001  或是  login.do?carmemberid=00001&paswd=1234

8. 完成  簡單的 spring MVC.