1. 程式人生 > >SpringMVC之使用 @RequestMapping 映射請求

SpringMVC之使用 @RequestMapping 映射請求

gmv 新增 pos ack patch 客戶端 img face 處理

@RequestMapping註解

SpringMVC使用該註解讓控制器知道可以處理哪些請求路徑的,除了可以修飾方法,還可以修飾在類上

– 類義處:提供初求映射信息。相WEB 用的根目
方法:提供分映射信息。相義處URL。若
義處@RequestMapping方法處標記URL
WEB 用的根目錄 。

DispatcherServlet作為SpringMVC的前置控制器,攔截客戶端請求後,通過該註解的映射信息確定請求的處理方法。

 @RequestMapping接口定義:
@Target({ElementType.METHOD
, ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) @Documented @Mapping
public @interface RequestMapping {

下面是一個測試類

package com.led.test;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

/**
 * @author Alan
 * @date 2018/5/25 22:03
 
*/ @Controller @RequestMapping("/test") public class SpringMVCTest { private static final String SUCCESS = "success"; @RequestMapping("/testRequestMapping") public String testRequestMapping(){ System.out.println("testRequestMapping"); return SUCCESS; } }

index.jsp加上發送對應請求的鏈接:

<a href="test/testRequestMapping">Test RequestMapping</a>

運行項目,點擊該鏈接,可以看到請求路徑是類上的請求路徑和方法的請求路徑拼接起來的,同時控制臺也有對應輸出。

技術分享圖片

技術分享圖片

@RequestMapping裏面還可以使用method屬性定義請求方式:

 /**
     * 使用method定義請求方式
     * @return
     */
    @RequestMapping(value = "/testMethod",method = RequestMethod.POST)
    public String testMethod(){
        System.out.println("test method");
        return SUCCESS;
    }

index.jsp新增發送post方式的按鈕,點擊後成功跳轉到success.jsp

<form action="test/testMethod" method="post">
      <input type="submit" value="submit">
  </form>

技術分享圖片

技術分享圖片

如果使用超鏈接方式(其實發送的是GET請求),將報如下錯誤:

技術分享圖片

@RequestMapping映射求參數(params)、求方法或頭 (headers)示例;

@RequestMapping(value = "/testParamsAndHeaders",
            headers = {"Accept-Language=zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7"},
            params = {"username","age!=10"})
    public String testParamsAndHeaders(){
        System.out.println("testParamsAndHeaders");
        return SUCCESS;
    }

index.jsp加上測試鏈接:

<a href="test/testParamsAndHeaders?username=zhangsan&age=11">Test ParamsAndHeaders</a>

技術分享圖片

由於params和headers都符合設置的值,所以成功返回success.jsp.

SpringMVC之使用 @RequestMapping 映射請求