Spring MVC 獲取前端引數的註解

2021-09-13 10:31:29 字數 2010 閱讀 9847

在與前端互動的開發過程中,出現過幾次無法取到引數的情況,費了些時間去排查問題,下面就簡單總結一下。

我們所要獲取的前端傳遞引數大概可以分為以下四類:

註解 把uri template 中變數 的值,繫結到方法的引數上。若方法引數名稱和需要繫結的uri template中變數名稱不一致,需要在@pathvariable("name")指定uri template中的名稱。

**示例:

如果看不到圖,換個瀏覽器試試

get模式下,使用@pathvariable繫結輸入引數,非常適合restful風格。因為隱藏了引數與路徑的關係,可以提公升**的安全性,靜態化頁面,降低惡意攻擊風險;

post模式下,沒什麼必要用這個方式,畢竟引數都暴露在url上面了。

註解 可以把request請求header部分的值繫結到方法的引數上,如果,@requestheader繫結的引數,在請求頭部並沒有的話,會報錯,比如cookie。

可以把request header中關於cookie的值繫結到方法的引數上。我並沒有實際使用過~

/json/xml等;

通過使用handleradapter 配置的httpmessageconverters來解析post data body,然後繫結到相應的bean上的。

使用時機

a) get、post方式提時, 根據request header content-type的值來判斷:

multipart/form-data, 不能處理(即使用@requestbody不能處理這種格式的資料);

b) put方式提交時, 根據request header content-type的值來判斷:

multipart/form-data, 不能處理;

其他格式, 必須;

說明:request的body部分的資料編碼格式由header部分的content-type指定; 

示例**:

後台獲取方式:

這個時候後台取不到引數,因為前端不是使用form提交的,parameter裡面是沒有引數值的

修改為:

使用@requestbody 註解,將引數轉為物件,直接取物件值

前端ajax請求,get方式,能取到

multipart/form-data

單個引數

物件@pathvariable

get、post(並沒有什麼意義)

get、post(並沒有什麼意義)

get、post(並沒有什麼意義)

@requestheader

get、post

get、post

get、post

@cookievalue

get、post

get、post

get、post

@requestparam

get、post

————

——@requestbody

get、post

get、post

————

@modelattribute

get、post

————

@sessionattributes

springMVC獲取傳遞的引數

頁面定義如下 1.通過httpservletrequest controller public class helloworldcontroller 這種方式和servlet完全一樣,從request中直接獲得即可 2.通過和引數名相同的入參 public string say string use...

學習SpringMVC 如何獲取請求引數

requestparam pathvariable queryparam cookievalue modelandview modelattribute controller的註解,該註解在springmvc 中,負責處理由dispatcherservlet 分發的請求,它把使用者請求的資料經過業務...

SpringMVC 獲取請求引數的方式

目錄 servletapi方式獲取 可選引數寫法如下 requestparam value username required false,defaultvalue 未命名使用者 作用 將請求頭資訊和控制器方法形參建立對映關係 屬性 value required defaultvalue 請求頭 作...