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