gpt4 book ai didi

java - 是否可以在 Spring MVC REST 端点中验证 @RequestParam?

转载 作者:搜寻专家 更新时间:2023-10-31 20:28:13 25 4
gpt4 key购买 nike

在 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,所以我没有任何 View 可以映射/绑定(bind)到 Controller 。

最佳答案

似乎有可能,使用 @Validated

这是一个 example .

根据 OP 的问题,这应该可行:

@RestController
@Validated
public class MyController {

@GetMapping(value="/user/{email}")
public @ResponseBody IDto getUser(@NotNull @Email @PathVariable String validEmail) {
return userManagementService.findUserByEmail(validEmail);
}

}

在普通的 Spring 实现中,可能需要手动注册 validator bean:

@Bean
public MethodValidationPostProcessor methodValidationPostProcessor() {
return new MethodValidationPostProcessor();
}

关于java - 是否可以在 Spring MVC REST 端点中验证 @RequestParam?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24582842/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com