處理@PathVariable注解允許參數(shù)為空、允許不傳參數(shù)的問題
說明
設(shè)置可以不傳:
但是請求的時(shí)候,仍然提示projectId必傳:
這是因?yàn)閡rl要求帶參,屬于REST參數(shù)。
解決辦法
設(shè)置多個(gè)url path即可,有的傳REST參,有的不傳。當(dāng)然required必須是false
這個(gè)問題以前解決過,——還是要溫習(xí)一下比較好呀
補(bǔ)充:接收參數(shù)注解@PathVariable 與 @RequestParam與 不使用注解接收參數(shù)的情況
@RequestParam使用場景:
@RequestParam: 顧名思義,獲取請求參數(shù)的
@RequestParam的兩個(gè)屬性:value 獲取值 , required 為 true 必填
1. 1前端地址情景:
http://localhost:8989/SSSP/emps?pageNo=2
如果想獲取地址中的 pageNo的值 ‘2'> ,則使用@RequestParam
1.2.前端BootStrap請求情景:
傳單個(gè)參數(shù):
queryParams:{id,id} // (此時(shí)id已獲取到j(luò)s,如var id = row.id )
傳多個(gè)參數(shù):
queryParams:function(params){ return{ type:#(‘type').val, accountName:#(‘a(chǎn)ccountName').val } }
1.3 后臺(tái)獲取上面兩種傳參方式:
Public Object getXiFeiList(@RequestParam Map<String,Object> params){ //使用方式一:使用get(“key”)獲取后使用 params.get(“id”); //使用方式二:作為Query的參數(shù)創(chuàng)建對象,直接使用 Query query = new Query(params); List<DictDo> dictList = dictSevice.list(query); }
@PathVariable使用場景:
@PathVariable:顧名思義,獲取url地址中的一部分值
1. 前端地址單參數(shù)情景:
http://localhost:8989/SSSP/emp/type
如果想獲取地址中的 emp/type 中的 ‘type ',則使用@PathVariable
2. 前端地址多參數(shù)情景
http://localhost:8989/SSSP/emp/7/5
如果想獲取地址中的 emp/7/5 中的‘7''5',則使用@PathVariable
3. 后臺(tái)獲?。?/h3>
接收單個(gè)參數(shù)
String addD(@PathVariable(“type”) String type)
接收多個(gè)參數(shù)
String addD(@PathVariable(“type”) String type,@PathVariable(“id”) Long id)
不使用注解就可以接收參數(shù)的情況
情況1. 前端Js中發(fā)送ajax請求data:{‘id',id}情景:
remove(id){ function(){ $.ajax(){ url:prefix+”/remove”, type:”post”, data:{‘id',id}//ajax使用data傳值時(shí)使用@PathVariable ....... } } }
情況1.后臺(tái)獲取:
public R remove(Long id){} // 獲取后就可以直接使用
情況2. 前端JS中發(fā)送ajax請求data: $('#addLoanForm').serialize()情景:
$.ajax({ cache: true, type: "POST", url:"/loansign/signProject/creditSave", data: $('#addLoanForm').serialize() //重要:將前臺(tái)表單中的數(shù)據(jù)序列化,序列化的內(nèi)容是name }
情況2.后臺(tái)獲取:
public R creditSave( SignCreditDO signCredit){}//使用對象接收數(shù)據(jù)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
詳解Java Proxy動(dòng)態(tài)代理機(jī)制
今天給大家?guī)淼氖顷P(guān)于Java的相關(guān)知識(shí),文章圍繞著Java動(dòng)態(tài)代理機(jī)制展開,文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下2021-06-06springmvc不進(jìn)入Controller導(dǎo)致404的問題
這篇文章主要介紹了springmvc不進(jìn)入Controller導(dǎo)致404的問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02IntelliJ?IDEA?2023版本創(chuàng)建Spring項(xiàng)目時(shí)Java只能選擇17或21的問題解決方法
spring-boot是一個(gè)基于Java的開源框架,用于快速構(gòu)建生產(chǎn)級(jí)別的應(yīng)用程序,這篇文章主要給大家介紹了關(guān)于IntelliJ?IDEA?2023版本創(chuàng)建Spring項(xiàng)目時(shí)Java只能選擇17或21的問題解決方法,需要的朋友可以參考下2024-07-07SpringMVC數(shù)據(jù)頁響應(yīng)ModelAndView實(shí)現(xiàn)頁面跳轉(zhuǎn)
本文主要介紹了SpringMVC數(shù)據(jù)頁響應(yīng)ModelAndView實(shí)現(xiàn)頁面跳轉(zhuǎn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07Spring裝配Bean之用Java代碼安裝配置bean詳解
這篇文章主要給大家介紹了關(guān)于Spring裝配Bean之用Java代碼安裝配置bean的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用spring具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧。2017-10-10Spring Boot啟動(dòng)過程(六)之內(nèi)嵌Tomcat中StandardHost、StandardContext和Sta
這篇文章主要介紹了Spring Boot啟動(dòng)過程(六)之內(nèi)嵌Tomcat中StandardHost、StandardContext和StandardWrapper的啟動(dòng)教程詳解,需要的朋友可以參考下2017-04-04