最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

對SpringMVC的@RequestParam的解釋

 更新時間:2017年09月01日 09:26:51   投稿:jingxian  
下面小編就為大家?guī)硪黄獙pringMVC的@RequestParam的解釋。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

自SpringMVC4.2之后,RequestParam內(nèi)部有4個參數(shù):

1、String name

2、String value

3、boolean required

4、String defaultValue

其中name和value分別是對方的別名,即二者沒區(qū)別,我個人比較喜歡用name,因為它的某些特性使得name這個名字更直觀,下面會說到。

先看第一個映射方法的定義:

@RequestMapping("/paramTest0")
 public @ResponseBody String paramTest(Long id){
  String result = "";
  result += id;
  return result;
 }

①然后我在瀏覽器地址欄上輸入:http://localhost:8080/test/hello/paramTest0

瀏覽器顯示:null

這里引申出了SpringMVC的一個特性,即當(dāng)瀏覽器中沒有輸入相應(yīng)參數(shù)和值,那么SpringMVC會給id賦值為null,注意是null而非0,因此參數(shù)都最好不要用基礎(chǔ)類型。

②在瀏覽器中輸入:http://localhost:8080/test/hello/paramTest0?userName=zhang&userName=li&id=9&userName=shit

瀏覽器顯示:9

說明瀏覽器中只要有輸入需要的參數(shù)即可,而不管是否包含多余的參數(shù),且沒有規(guī)定順序。

③在瀏覽器中輸入:http://localhost:8080/test/hello/paramTest0?id=6

顯示為:6

這個就不解釋了。

#########################################分隔符##################################################

再看第二個映射方法的定義:

@RequestMapping("/paramTest")
 public @ResponseBody String paramTest(@RequestParam(name="userName", required = false) String[] userNames, Long id){
  String result = "";
  if(userNames != null){
   for(int i=0;i<userNames.length;i++){
    result += userNames[i] + "#";
   }
  }
  result += id;
  return result;
 }

①然后在瀏覽器輸入:http://localhost:8080/test/hello/paramTest?userName=zhang&userName=li&id=5&userName=fuck

顯示為:zhang#li#fuck#5

由此引申出:首先URL請求的參數(shù)部分可以有多對參數(shù)的參數(shù)名一樣,如上面的userName,且它們中間可以用其它參數(shù)隔開(上面用了id=5隔開)而不會影響這幾個參數(shù)名一樣的參數(shù)值構(gòu)成“數(shù)組”,

相同的參數(shù)名的值將會被瀏覽器變成類似userName="zhang,li,fuck",告訴服務(wù)器這是個數(shù)組,這里的元素值的順序則是跟在URL請求中的順序是對應(yīng)的。

然后看我們方法參數(shù)里的是userNames而非userName,但是仍然顯示正確,這是因為RequestParam的name或value屬性的值userName才是和

瀏覽器那邊傳過來的參數(shù)名對應(yīng)(個人認(rèn)為這是name比value更直觀一點的原因),而它注解的參數(shù)userNames就是

此注解"userName"要“賦值”的變量(或說RequestParam類似做了個中介將客戶端請求中的參數(shù)值導(dǎo)向到相應(yīng)的請求映射方法的參數(shù)上,即userNames)。

還要注意,一個@RequestParam只能注解一個參數(shù),即后面的Long id上是沒有該注解的。

RequestParam中的required是指這個參數(shù)是否客戶端必須提供,defaultValue則是如果沒有提供該參數(shù)默認(rèn)值是什么(故required=true, defaultValue="xxx"就沒意義了)。

以上這篇對SpringMVC的@RequestParam的解釋就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 避免Java中的內(nèi)存泄漏的三種方法

    避免Java中的內(nèi)存泄漏的三種方法

    在Java開發(fā)中,內(nèi)存泄漏(Memory Leak)是一個常見但令人頭疼的問題,本文將深入探討什么是內(nèi)存泄漏、常見的泄漏原因、如何識別和避免內(nèi)存泄漏,以及通過代碼示例展示如何優(yōu)化Java程序以減少內(nèi)存泄漏的發(fā)生,需要的朋友可以參考下
    2024-07-07
  • Java如何在臨界區(qū)中避免競態(tài)條件

    Java如何在臨界區(qū)中避免競態(tài)條件

    這篇文章主要介紹了Java如何在臨界區(qū)中避免競態(tài)條件,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-10-10
  • 四種引用類型在JAVA Springboot中的使用詳解

    四種引用類型在JAVA Springboot中的使用詳解

    這篇文章主要介紹了springboot的四種引用類型,本文通過示例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-09-09
  • dubbo入門指南及demo實例詳解

    dubbo入門指南及demo實例詳解

    Dubbo是一個分布式服務(wù)框架,致力于提供高性能和透明化的RPC遠程服務(wù)調(diào)用方案,以及SOA服務(wù)治理方案,這篇文章主要介紹了dubbo詳解及demo實例,需要的朋友可以參考下
    2022-04-04
  • Spring中基于xml的聲明式事務(wù)示例詳解

    Spring中基于xml的聲明式事務(wù)示例詳解

    這篇文章主要介紹了Spring之基于xml的聲明式事務(wù),本文通過圖文實例代碼相結(jié)合給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-09-09
  • JVM內(nèi)存結(jié)構(gòu)劃分實例解析

    JVM內(nèi)存結(jié)構(gòu)劃分實例解析

    這篇文章主要介紹了JVM內(nèi)存結(jié)構(gòu)劃分實例解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-12-12
  • java如何判斷一個數(shù)是否是素數(shù)(質(zhì)數(shù))

    java如何判斷一個數(shù)是否是素數(shù)(質(zhì)數(shù))

    這篇文章主要介紹了java如何判斷一個數(shù)是否是素數(shù)(質(zhì)數(shù)),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • SpringBoot項目將mybatis升級為mybatis-plus的方法

    SpringBoot項目將mybatis升級為mybatis-plus的方法

    本文主要介紹了SpringBoot項目將mybatis升級為mybatis-plus的方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • 使用Java完成Socket文件傳輸方式

    使用Java完成Socket文件傳輸方式

    這篇文章主要介紹了使用Java完成Socket文件傳輸方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • Java?精煉解讀類和對象原理

    Java?精煉解讀類和對象原理

    面向?qū)ο竽耸荍ava語言的核心,是程序設(shè)計的思想。Java語言的面向?qū)ο蠹夹g(shù)包括了面向?qū)ο蠛兔嫦蜻^程的基本概念,面向?qū)ο蟮奶卣?,Java語言的類,對象,修飾符,抽象類等一系列的知識點
    2022-03-03

最新評論

塘沽区| 信宜市| 疏附县| 江北区| 集安市| 依安县| 新沂市| 富裕县| 肃宁县| 苍南县| 汾阳市| 三原县| 博湖县| 库伦旗| 惠水县| 临泽县| 堆龙德庆县| 沂南县| 余干县| 鸡泽县| 托里县| 南华县| 扶风县| 德清县| 长顺县| 扶余县| 乌审旗| 长垣县| 天台县| 象州县| 浮梁县| 泸州市| 盱眙县| 桂平市| 兰西县| 红河县| 平泉县| 丹阳市| 鄢陵县| 香河县| 杨浦区|