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

為了賬號安全,請及時綁定郵箱和手機立即綁定

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

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

正在回答

3 回答

@PathVariable不能為空,不能設(shè)置默認值,因為null對于url是無意義的。
如果參數(shù)確實可能為空,需要默認值,可以使用@RequestParams。

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

慕慕1234 提問者

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

慕慕1234 提問者

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

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

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

不能允許為空,但是可以變通。最近遇到個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這個請求是過不來的,而且會報錯。

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

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

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

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

所以其實上面的方法也可以拆成兩個方法。

@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ù)我~

舉報

0/150
提交
取消

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

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

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

幫助反饋 APP下載

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

公眾號

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