日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

SpringBoot-@RequestParam

發布時間:2024/9/20 javascript 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SpringBoot-@RequestParam 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Request參數

在訪問各種各樣網站時,經常會發現網站的URL的最后一部分形如:?xxxx=yyyy&zzzz=wwww。這就是HTTP協議中的Request參數,它有什么用呢?先來看一個例子:

  • 在知乎中搜索web
  • 瀏覽器跳轉到新頁面后,URL變為https://www.zhihu.com/search?type=content&q=web

這里type=content&q=web就是搜索請求的參數,不同參數之間用&分隔,每個參數形如name=value形式,分別表示參數名字和參數值。在這個例子中,我們輸入不同的搜索關鍵詞,在搜索結果頁面的URL的q參數是不同的,也就是說,HTTP參數實際上可以認為是一種用戶的輸入,根據不同的用戶輸入,服務器經過處理后返回不同的輸出(例如搜索spring和搜索java,顯示結果是不一樣的。)

Spring MVC中的Request參數

在SpringMVC框架中,現在我們已經可以通過定義@RequestMapping來處理URL請求了,和@PathVariable一樣,我們也需要再處理URL的函數中獲取URL中的參數-也就是?key=value1&key2=value2這樣的參數列表。通過注解@RequestParam可以輕松的將URL中的參數綁定到處理函數方法的變量中:

@RequestMapping("/user")@ResponseBody // public String getUerBlog(@PathVariable String username , @PathVariable int blogId) { // return "user: " + username + "blog->" + blogId; // }public String getUserBlog(@RequestParam("id") int blogId) {return "blogId = " + blogId;}

這樣當我們訪問/user/?id=123時,Spring MVC幫助我們將Request參數id的值綁定到了處理函數的參數blogId上。這樣就能夠輕松獲取用戶輸入,并根據它的值進行計算并返回了。

運行結果:

@RequestParam vs @PathVariable

相信大家可能注意到了,@RequestParam和@PathVariable都能夠完成類似的功能——因為本質上,它們都是用戶的輸入,只不過輸入的部分不同,一個在URL路徑部分,另一個在參數部分。要訪問一篇博客文章,這兩種URL設計都是可以的:

  • 通過@PathVariable,例如/blogs/1
  • 通過@RequestParam,例如blogs?blogId=1

那么究竟應該選擇哪一種呢?建議:

  • 當URL指向的是某一具體業務資源(或者資源列表),例如博客,用戶時,使用@PathVariable
  • 當URL需要對資源或者資源列表進行過濾,篩選時,用@RequestParam
  • 例如我們會這樣設計URL:

    • /blogs/{blogId}
    • /blogs?state=publish而不是/blogs/state/publish來表示處于發布狀態的博客文章

    更多用法

    一旦我們在方法中定義了@RequestParam變量,如果訪問的URL中不帶有相應的參數,就會拋出異常——這是顯然的,Spring嘗試幫我們進行綁定,然而沒有成功。但有的時候,參數確實不一定永遠都存在,這是我們可以通過定義required屬性:

    @RequestParam(name="id",required=false)

    當然,在參數不存在的情況下,可能希望變量有一個默認值:

    @RequestParam(name="id",required=false,defaultValue="0")

    來源:https://www.cnblogs.com/fangpengchengbupter/p/7826565.html

    總結

    以上是生活随笔為你收集整理的SpringBoot-@RequestParam的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。