Java Bean验证将对象RequestParam转换为@RequestBody
我有以下资料:Java Bean验证将对象RequestParam转换为@RequestBody,java,spring,spring-boot,bean-validation,spring-restcontroller,Java,Spring,Spring Boot,Bean Validation,Spring Restcontroller,我有以下资料: @PostMapping(produces = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity<LoginResponse> getLoginStatus(@Valid LoginRequest loginRequest){ //some stuff here } @PostMapping(products=MediaType.APPLICATION\u JSON\u值) 公共响应
@PostMapping(produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<LoginResponse> getLoginStatus(@Valid LoginRequest loginRequest){
//some stuff here
}
@PostMapping(products=MediaType.APPLICATION\u JSON\u值)
公共响应属性getLoginStatus(@Valid LoginRequest LoginRequest){
//这里有些东西
}
loginRequest
参数是一个@RequestParam
,但由于它是一个自定义对象,因此不需要对象前面的@RequestParam
注释。问题是,当任何bean验证注释放在自定义对象前面时,该对象将转换为一个body参数(@RequestBody
),但我们希望将该对象验证为请求参数,而不是body参数
有人能帮我吗?为什么
LoginRequest
属性成为RequestBody
的一部分,而不再是RequestParameters
的一部分,是因为springfox swagger
版本2.6.1。升级到2.7.0版为我们解决了这个问题。之所以LoginRequest
属性成为RequestBody
的一部分,而不再是RequestParameters
的一部分,是因为springfox swagger
版本2.6.1。升级到2.7.0版为我们解决了这个问题。您是否已经在春季查看了@Validated注释?是一个示例。它是一个自定义对象这一事实与您是否有权添加@RequestParam
注释这一事实无关。现在发生的是spring创建了一个类的实例并进行了一些绑定(大部分与@modeldattribute
相同)。。如果要使用@RequestParam
,它将尝试使用转换器或自定义HandlerMethodArgumentResolver
将请求参数转换为给定的LoginRequest
对象。基本上你对所发生的事情的理解是错误的,我不明白。只需使用有效的@modeldattribute LoginForm LoginForm您是否已经在Spring中查看了@Validated注释?是一个示例。它是一个自定义对象这一事实与您是否有权添加@RequestParam
注释这一事实无关。现在发生的是spring创建了一个类的实例并进行了一些绑定(大部分与@modeldattribute
相同)。。如果要使用@RequestParam
,它将尝试使用转换器或自定义HandlerMethodArgumentResolver
将请求参数转换为给定的LoginRequest
对象。基本上你对所发生的事情的理解是错误的,我不明白。只需使用有效的@modeldattribute LoginForm LoginForm