使用注解映射請求參數


使用@RequestMapping映射請求

  (1)使用請求URL映射請求:

    1,SpringMVC使用@RequestMapping注解為控制器指定可以處理哪些URL請求

      2,標注在類定義處:提供初步的請求映射信息。相對於WEB應用的根目錄

        標注在方法處:提供進一步的細分映射信息。相對於類定義處的URL,若類定義處未標注@RequestMapping,則方法處標記的URL相對於WEB應用的根目錄。

    3,DispatcherServlet截獲請求后,就通過控制器上@RequestMapping提供的映射信息確定請求所對應的處理方法

  (2)還可以使用請求方法,請求參數及請求頭映射請求

    @RequestMappingvalue,method,params及heads分別表示請求URL,請求方法,請求參數及請求頭的映射條件,他們之間是與的關系,聯合使用可使請求映射更加精確。

  

 

如:

即為映射URL為/testParamsAndHeaders,且包含參數username及值不等於10的age參數的請求

@RequestMapping(value="/testParamsAndHeaders",params= {"username","age!=10"})

 

二,使用@PathVariable映射URL綁定的占位符

  通過@PathVariable可以將URL中占位符參數綁定到控制器處理方法的入參中

  

 

 三,REST(即Representational State Transfer)資源表現層狀態轉換。

  狀態轉換就是HTTP協議里面,四個表示操作方式的動詞:GET,POST,PUT,DELETE。分別對應四種操作:GET用來獲取找資源,POST用來新建資源,PUT用來更新資源,DELETE用來刪除資源。

  

 

 

 

  HiddenHttpFilter:瀏覽器form表單只支持GET與POST請求,而DELETE,PUT等method並不支持,Spring3.0添加了一個過濾器,可以將這些請求轉換為標准的http方法,使得支持這四種請求。

①配置filter

 <!-- 配置 HiddenHttpMethodFilter-->
  <filter>
      <filter-name>HiddenHttpMethodFilter</filter-name>
      <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
  </filter>
  <filter-mapping>
      <filter-name>HiddenHttpMethodFilter</filter-name>
      <url-pattern>/*</url-pattern>
  </filter-mapping>

②客戶端發起請求:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
    <form action="springmvc/testRest/1" method="post">
    <input type="hidden" name="_method" value="DELETE"/>
    <input type=submit value="TestRest DELETE"/>
    </form>
    <br><br>
    
    <form action="springmvc/testRest/1" method="post">
    <input type="hidden" name="_method" value="PUT"/>
    <input type=submit value="TestRest PUT"/>
    </form>
    <br><br> 
    
    <form action="springmvc/testRest" method="post">
    <input type=submit value="TestRest POST"/>
    </form>
    <br><br>
    
    <a href="springmvc/testRest/1">Test Rest Get</a>
    <br><br>
    <a href="springmvc/testParamsAndHeaders?username=boogie3&age=10">TestParamsAndHeaders</a>
    
    
    <br><br>
    <form action="springmvc/testMethod" method="post">
        <input type=submit value=submit>
    </form>
    <a href="springmvc/testMethod">test Method</a>
    
    <br><br>
    <a href="HelloWorld">Hello World</a>
    <br><br>
    <a href="springmvc/testRequestMapping">test RequestMapping</a>
</body>
</html>

3,編寫后端控制器

在tomcat8上面是不支持delete和post請求的,因此以上只能在tomcat7上面執行

tomcat8運行時可以進入到相應的控制器,但是視圖渲染返回的時候,由於不支持這兩種方法,就會報出異常頁面

 

改正方法一:在執行完跳轉的JSP頁面加上isErrorPage="true";

 

 運行結果為:

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM