激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - 一篇文章弄懂Spring MVC的參數綁定

一篇文章弄懂Spring MVC的參數綁定

2021-07-15 14:39java_lover Java教程

這篇文章主要給大家介紹了關于如何通過一篇文章弄懂Spring MVC的參數綁定,文中通過示例代碼以及圖文介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧

前言

參數綁定,簡單來說就是客戶端發送請求,而請求中包含一些數據,那么這些數據怎么到達 controller ?這在實際項目開發中也是用到的最多的,那么 springmvc 的參數綁定是怎么實現的呢?

下面我們來詳細的講解。

springmvc參數綁定,簡單來說就是將客戶端請求的key/value數據綁定到controller方法的形參上,然后就可以在controller中使用該參數了

下面通過5個常用的注解演示下如何進行參數綁定:

1. @pathvariable注解

@pathvariable 是用來獲得請求url中的動態參數的,可以將url中的變量映射到功能處理方法的參數上,其中url 中的 {xxx} 占位符可以通過@pathvariable(“xxx“) 綁定到操作方法的入參中。

示例代碼:

?
1
2
3
4
5
6
7
@responsebody
@requestmapping("/testurlpathparam/{param1}/{param2}")
public void testurlpathparam(httpservletrequest request, @pathvariable string param1,
    @pathvariable string param2) {
system.out.println("通過pathvariable獲取的參數param1=" + param1);
system.out.println("通過pathvariable獲取的參數param2=" + param2);
}

postman發送請求截圖:

一篇文章弄懂Spring MVC的參數綁定

輸出結果:

通過pathvariable獲取的參數param1=1
通過pathvariable獲取的參數param2=2

2.@requestheader注解

@requestheader 注解,可以把request請求header部分的值綁定到方法的參數上。

示例代碼:

?
1
2
3
4
5
@responsebody
@requestmapping("/testheaderparam")
public void testheaderparam(httpservletrequest request, @requestheader string param1) {
system.out.println("通過requestheader獲取的參數param1=" + param1);
}

postman發送請求截圖:

一篇文章弄懂Spring MVC的參數綁定

輸出結果:

通過requestheader獲取的參數param1=abc

3.@cookievalue注解

@cookievalue 可以把request header中關于cookie的值綁定到方法的參數上。

示例代碼:

?
1
2
3
4
5
6
@responsebody
@requestmapping("/testcookieparam")
public void testcookieparam(httpservletrequest request, httpservletresponse response,
        @cookievalue string sessionid) {
 system.out.println("通過cookievalue獲取的參數sessionid=" + sessionid);
}

postman發送請求截圖:

一篇文章弄懂Spring MVC的參數綁定

輸出結果:

通過cookievalue獲取的參數sessionid=ebef978eef6c46f8a95cc0990d2d360a

4.@requestparam注解

@requestparam注解用來處理content-type: 為 application/x-www-form-urlencoded編碼的內容。提交方式為get或post。(http協議中,form的enctype屬性為編碼方式,常用有兩種:application/x-www-form-urlencoded和multipart/form-data,默認為application/x-www-form-urlencoded);

@requestparam注解實質是將request.getparameter() 中的key-value參數map利用spring的轉化機制conversionservice配置,轉化成參數接收對象或字段,
get方式中querystring的值,和post方式中body data的值都會被servlet接受到并轉化到request.getparameter()參數集中,所以@requestparam可以獲取的到;

該注解有三個屬性: value、required、defaultvalue; value用來指定要傳入值的id名稱,required用來指示參數是否必錄,defaultvalue表示參數不傳時候的默認值。

示例代碼:

?
1
2
3
4
5
6
@responsebody
@requestmapping("/testrequestparam")
public void testrequestparam(httpservletrequest request,
        @requestparam(value = "num", required = true, defaultvalue = "0") int num) {
 system.out.println("通過requestparam獲取的參數num=" + num);
}

postman發送請求截圖:

一篇文章弄懂Spring MVC的參數綁定

輸出結果:

通過requestparam獲取的參數num=10

5.@requestbody注解

@requestbody注解用來處理httpentity(請求體)傳遞過來的數據,一般用來處理非content-type: application/x-www-form-urlencoded編碼格式的數據;

get請求中,因為沒有httpentity,所以@requestbody并不適用;

post請求中,通過httpentity傳遞的參數,必須要在請求頭中聲明數據的類型content-type,springmvc通過使用handleradapter配置的httpmessageconverters來解析httpentity中的數據,然后綁定到相應的bean上。

示例代碼:

?
1
2
3
4
5
@responsebody
@requestmapping("/testrequestbody")
public void testrequestbody(httpservletrequest request, @requestbody string bodystr){
 system.out.println("通過requestbody獲取的參數bodystr=" + bodystr);
}

postman發送請求截圖:

一篇文章弄懂Spring MVC的參數綁定

代碼運行結果:

通過requestbody獲取的參數bodystr=這是body的內容

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對服務器之家的支持。

原文鏈接:https://www.cnblogs.com/haha12/p/10336363.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 黄色一级片在线免费观看 | 国产一区二区在线免费播放 | 欧美一区在线观看视频 | 狠狠干五月天 | 黄色片在线免费播放 | 中文字幕电影免费播放 | av免费在线观看国产 | 国产精品性夜天天视频 | 91短视频免费 | 国产精品野外av久久久 | 一夜新娘第三季免费观看 | 精品国产一区二区三区久久久 | 91视频网页 | 九九综合视频 | av电影在线播放 | 成人啪啪色婷婷久 | 国产一区二区免费在线观看视频 | 午夜视频你懂的 | 毛片免费观看完整版 | 韩国19禁在线 | 国产精品久久久久久久四虎电影 | 午夜视频福利 | 日本高清电影在线播放 | 亚洲最新色 | 欧美精品一区二区视频 | 精品成人国产在线观看男人呻吟 | 999久久国精品免费观看网站 | 国产69精品久久久久9999不卡免费 | 自拍偷拍亚洲图片 | 在线观看免费精品 | 欧美一区中文字幕 | 国产精选电影免费在线观看网站 | 91九色免费视频 | 国产91中文字幕 | 国产91亚洲精品久久久 | 综合网日日天干夜夜久久 | 日韩av在线资源 | 91久久综合 | 精品三级内地国产在线观看 | 欧美人的天堂一区二区三区 | 999久久国精品免费观看网站 |