![](/img/trans.png)
[英]Cannot get '#' symbol in Controller using Spring @RequestParam
[英]Spring @RequestParam and controller interface
我對@RequestParam(value="someValue")
的行為感到困惑。 據說,在文檔中
使用控制器接口(例如,用於AOP代理)時,請確保在控制器接口而不是實現類上始終如一地放置所有映射注釋(例如@RequestMapping和@SessionAttributes)。
如果我將@RequestParam
放在我的控制器接口上,它的value
被完全忽略(因此,如果參數名稱與接收的參數名稱不同,則映射值為null
),但defaultValue
和required
工作正常。
如果我將@RequestParam
放在我的控制器實現上,一切正常。
我讀了這個答案,但是我無法理解為什么有些參數可以正常工作而其他參數卻沒有,為什么文檔錯了。
代碼示例:
接口:
@RequestMapping(method = RequestMethod.GET)
List<MyObject> get(
//works if parameter in request has name "userName", which is not correct
@RequestParam(value = "username", required = false) String userName,
@RequestParam(value = "searchValue", required = false) String searchValue,
@RequestParam(value = "someId", required = false) Integer someId);
執行:
@Override
public List<MyObject> get(
String userName,
String searchValue,
Integer someId) {
return myService.get(userName, searchValue, someId);
}
這最終應該得到解決: https : //jira.spring.io/browse/SPR-11055?focusCommentId = 160889&page = com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-160889
Juergen Hoeller添加了評論 - 昨天
我很高興地報告,現在終於在master中解決了這個問題,及時發布了5.1 RC1!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.