【发布时间】:2014-07-05 03:59:54
【问题描述】:
在 Jersey 2 中可以这样做:
@GET
@PATH("user/{email}")
public IDto getUser(@NotNull @Email @PathParam("email") String validEmail) {
return userManagementService.findUserByEmail(validEmail);
}
但我无法在 Spring MVC 中进行类似的工作,似乎只有在 @RequestBody 中提供对象或使用 SpringMVC 表单时才进行验证,例如以下内容不起作用:
@RequestMapping(value="/user/{email}", method = RequestMethod.GET)
public @ResponseBody IDto getUser(@NotNull @Email @PathVariable String validEmail) {
return userManagementService.findUserByEmail(validEmail);
}
还有其他类似的问题,但这些问题似乎面向 Spring MVC UI 应用程序,在我的情况下,它只是一个返回 JSON 响应的 REST API,所以我没有任何视图可以映射/绑定到控制器。
【问题讨论】:
-
您至少需要使用
@Valid进行注释,尽管这可能仅在您有模型类而不只是String时才有效。 -
是的,问题是关于简单参数而不是关于作为输入的 POJO 对象,因为我知道 @Valid 注释将使用类中注释中的 bean 验证。但这不是我要求的功能
标签: java spring spring-mvc