您好,登錄后才能下訂單哦!
這篇“RequestMapping注解有什么作用”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“RequestMapping注解有什么作用”文章吧。
@RequestMapping 是 Spring Web 應用程序中最常被用到的注解之一。這個注解會將 HTTP 請求映射到 MVC 和 REST 控制器的處理方法上。并且一個處理請求地址映射的注解,可用在類或方法上。用于類上,表示類中的所有響應請求的方法都是以該地址作為父路徑。
package org.springframework.web.bind.annotation; import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; import org.springframework.core.annotation.AliasFor; @Target({ElementType.METHOD, ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) @Documented @Mapping public @interface RequestMapping { String name() default ""; @AliasFor("path") String[] value() default {}; @AliasFor("value") String[] path() default {}; RequestMethod[] method() default {}; String[] params() default {}; String[] headers() default {}; String[] consumes() default {}; String[] produces() default {}; }
方法上:
請求 URL 的第二級訪問目錄。
屬性:
value
:用于指定請求的 URL。它和 path 屬性的作用是一樣的。
method
:用于指定請求的方式。
params
:用于指定限制請求參數的條件。它支持簡單的表達式。要求請求參數的 key 和 value 必須和 配置的一模一樣。
例如:
params = {“accountName”}
,表示請求參數必須有
accountNameparams = {“moeny!100”}
,表示請求參數中 money 不能是 100。
headers
:用于指定限制請求消息頭的條件。
注意:
以上四個屬性只要出現 2 個或以上時,他們的關系是與的關系。
作用:
用于建立請求URL和處理請求方法之間的對應關系。
出現位置:
請求 URL 的第一級訪問目錄。此處不寫的話,就相當于應用的根目錄。寫的話需要以/開頭。 它出現的目的是為了使我們的 URL 可以按照模塊化管理:
例如:
賬戶模塊:
/account/add
/account/update
/account/delete …
訂單模塊:
/order/add
/order/update
/order/delete
普通案例: 將@RequestMapping注解分別注釋在類和方法上,所以在前端寫鏈接的時候要寫完全的路徑(類上標簽的路徑+方法標簽上的路勁)
控制器的代碼塊:
/** * RequestMapping 注解出現的位置 * @author * @Company http://www.ithiema.com * @Version 1.0 */ @Controller("accountController") @RequestMapping("/account") public class AccountController { @RequestMapping("/findAccount") public String findAccount() { System.out.println("查詢了賬戶。。。。"); return "success"; } }
JSP中的代碼塊
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>requestmapping 的使用</title> </head> <body> <!-- 第一種訪問方式 --> <a href="${pageContext.request.contextPath}/account/findAccount" rel="external nofollow" > 查詢賬戶 </a> <!-- 第二種訪問方式 --> <a href="account/findAccount" rel="external nofollow" >查詢賬戶</a> </body> </html>
案例: 用于指定請求的方式,如果要求是get請求,那么在前端寫請求方式時的method=get,反之如果要求是post請求,前端的,medthod=post
控制器代碼塊:
/** * 保存賬戶 * @return */ @RequestMapping(value="/saveAccount",method=RequestMethod.POST) public String saveAccount() { System.out.println("保存了賬戶"); return "success"; }
jsp代碼塊
<a href="account/saveAccount" rel="external nofollow" >保存賬戶,get 請求</a> <form action="account/saveAccount" method="post"> <input type="submit" value="保存賬戶,post 請求"> </form>
注意: 當使用 get 請求時,提示錯誤信息是 405,信息是方法不支持 get 方式請求
params 屬性的示例: 用于指定限制請求參數的條件。它支持簡單的表達式。要求請求參數的 key 和 value 必須和 配置的一模一樣。 寫了這個屬性之后就一定要在前端發送請求的時候,前端就要有這個屬性,否則就無法訪問。控制器代碼塊:
/** * 刪除賬戶 * @return */ @RequestMapping(value="/removeAccount",params= {"accountName","money>100"}) public String removeAccount() { System.out.println("刪除了賬戶"); return "success"; }
jsp代碼塊:
<a href="account/removeAccount?accountName=aaa&money>100" rel="external nofollow" >刪除賬戶,金額 100</a> <a href="account/removeAccount?accountName=aaa&money>150" rel="external nofollow" >刪除賬戶,金額 150</a>
注意:
當我們點擊第一個超鏈接時,可以訪問成功。
當我們點擊第二個超鏈接時,無法訪問。
如下圖:
支持REST風格的參數: 代表性狀態傳輸 (REST) 是一種用于分布式超媒體系統(如萬維網)的體系結構樣式。 (以下測試代碼與@PathVariable聯用)
控制器代碼塊:
@RequestMapping(value = "/testRequestMapping/{Id}") public String testRequestMapping(@PathVariable String Id){ System.out.println("testRequestMapping執行了"+Id); return "success"; }
jsp前端代碼塊
<a href="account/testRequestMapping/21" rel="external nofollow" >@RequestMapping測試</a>
RequestMapping是一個用來處理請求地址映射的注解,可用于類或方法上。用于類上,表示類中的所有響應請求的方法都是以該地址作為父路徑。
RequestMapping注解有六個屬性
value
, method
value
:指定請求的實際地址,指定的地址可以是具體地址、可以RestFul動態獲取、也可以使用正則設置;
method
:指定請求的method類型, 分為GET、POST、PUT、DELETE等;
consumes
,produces
consumes
:指定處理請求的提交內容類型(Content-Type),例如application/json, text/html;
produces
:指定返回的內容類型,僅當request請求頭中的(Accept)類型中包含該指定類型才返回;
params
,headers
params
:指定request中必須包含某些參數值是,才讓該方法處理。
headers
:指定request中必須包含某些指定的header值,才能讓該方法處理請求。
以上就是關于“RequestMapping注解有什么作用”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。