【发布时间】:2016-03-21 16:52:37
【问题描述】:
我正在尝试添加具有默认值的请求参数 - 但是我希望该默认值是登录用户的名称。
我有一个 getUsername() 方法,它返回当前用户的名称,但我无法将注释的值设置为方法调用(或类属性)。这是我的方法:
@RequestMapping(method = RequestMethod.GET)
public @ResponseBody ResponseEntity<WebUser> getUser(
@RequestParam(value = "username", defaultValue = getUsername()) String username) {
return ResponseEntity.ok(service.getUser(getUsername(), username.toLowerCase()));
}
我可以使 RequestParam 不需要并在 null 时填充它 - 但这感觉不是很优雅(或弹簧式)。有没有其他方法可以做到这一点?
【问题讨论】:
-
您可以编写自己的
HandlerMethodArgumentResolver(docs.spring.io/spring/docs/current/javadoc-api/org/…) - 或者如果您使用 spring-security - 查看@AuthenticationPrincipal注释 (docs.spring.io/autorepo/docs/spring-security/4.0.3.RELEASE/…) -
我认为 HandlerMethodArgumentResolver 可能是我最好的选择。感谢您的提示 - 我将继续前进。
标签: java spring spring-mvc annotations http-request-parameters