第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定

@Pathvariable注解允許參數(shù)為空嗎?

@Pathvariable注解允許參數(shù)為空嗎?

正在回答

3 回答

@PathVariable不能為空,不能設(shè)置默認(rèn)值,因?yàn)閚ull對(duì)于url是無意義的。
如果參數(shù)確實(shí)可能為空,需要默認(rèn)值,可以使用@RequestParams。

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

慕慕1234 提問者

非常謝謝你的回答,其實(shí)我知道null對(duì)于url是無意義的。其實(shí)疑問在于它的 required 屬性設(shè)成false是什么作用呢 ?我想應(yīng)該不是雞肋,是真想不通了,或者我鉆牛角尖了,真心求大神解答
2018-07-26 回復(fù) 有任何疑惑可以回復(fù)我~
#2

慕慕1234 提問者

非常感謝!
2018-07-26 回復(fù) 有任何疑惑可以回復(fù)我~

非常感謝,我也遇到相同問題了

1 回復(fù) 有任何疑惑可以回復(fù)我~

不能允許為空,但是可以變通。最近遇到個(gè)required=false沒用的情況。如下:

@RequestMapping(value?=?"/student/{id}",?RequestMethod.GET)
public?Student?student(@PathVariable(required?=?false)?Integer?id)?{
????//......
????return?student;
}

按照上面的代碼,是希望如果不傳id,Integer id的id就為null,可以查詢所有學(xué)生信息。但是發(fā)現(xiàn),/student這個(gè)請求是過不來的,而且會(huì)報(bào)錯(cuò)。

試了n次,突然發(fā)現(xiàn),其實(shí)/student和/student/{id}是兩個(gè)不同的url,當(dāng)然是不能走同一個(gè)請求的呀。于是想到@RequestMapping是可以處理多個(gè)url的。于是將上面的@RequestMapping改成下面這樣:

@RequestMapping(value?=?{"/student/{id}",?"/student"},?RequestMethod.GET)

這樣就是可以的,此時(shí)的required = false就可以起作用了。

我覺得springmvc處理這塊的邏輯就是:如果required = false,而你沒有傳這個(gè)參數(shù),那么它會(huì)去找這個(gè)參數(shù)去掉之后的替代url (/student),如果發(fā)現(xiàn)有替代的url,就可以處理這個(gè)請求,如果沒有找到,就拋出異常不去處理。

所以其實(shí)上面的方法也可以拆成兩個(gè)方法。

@RequestMapping(value?=?"/student/{id}",?RequestMethod.GET)
public?Student?student(@PathVariable?int?id)?{
}
@RequestMapping(value?=?"/student",?RequestMethod.GET)
public?Student?studentAll()?{
}


7 回復(fù) 有任何疑惑可以回復(fù)我~
#1

慕慕1234 提問者

非常感謝,推論是跟我預(yù)想的一樣
2018-08-28 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消
Java高并發(fā)秒殺API之web層
  • 參與學(xué)習(xí)       66136    人
  • 解答問題       420    個(gè)

Java實(shí)現(xiàn)高并發(fā)秒殺API的第三門課,介紹Web層的設(shè)計(jì)和實(shí)現(xiàn)

進(jìn)入課程

@Pathvariable注解允許參數(shù)為空嗎?

我要回答 關(guān)注問題
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)