Lia*_*Lia 6 java spring spring-mvc
我对的行为感到困惑@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);
Run Code Online (Sandbox Code Playgroud)
实施:
@Override
public List<MyObject> get(
String userName,
String searchValue,
Integer someId) {
return myService.get(userName, searchValue, someId);
}
Run Code Online (Sandbox Code Playgroud)
这最终应该得到解决: https: //jira.spring.io/browse/SPR-11055? focusedCommentId=160889&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-160889
Juergen Hoeller 添加了一条评论 - 昨天
我很高兴地向大家报告,这个问题现在终于在 master 中解决了,及时发布了 5.1 RC1!
| 归档时间: |
|
| 查看次数: |
997 次 |
| 最近记录: |