diff --git a/spring-webflux/src/main/java/org/springframework/web/reactive/result/method/annotation/ErrorsMethodArgumentResolver.java b/spring-webflux/src/main/java/org/springframework/web/reactive/result/method/annotation/ErrorsMethodArgumentResolver.java index fe534a4c6c..9cd88c005a 100644 --- a/spring-webflux/src/main/java/org/springframework/web/reactive/result/method/annotation/ErrorsMethodArgumentResolver.java +++ b/spring-webflux/src/main/java/org/springframework/web/reactive/result/method/annotation/ErrorsMethodArgumentResolver.java @@ -90,8 +90,10 @@ public class ErrorsMethodArgumentResolver extends HandlerMethodArgumentResolverS Object errors = context.getModel().asMap().get(BindingResult.MODEL_KEY_PREFIX + name); - Assert.notNull(errors, "An Errors/BindingResult argument is expected to be declared " + - "immediately after the @ModelAttribute argument to which it applies: " + + Assert.notNull(errors, "An Errors/BindingResult argument is expected " + + "immediately after the @ModelAttribute argument to which it applies. " + + "For @RequestBody and @RequestPart arguments, please declare them with a reactive type wrapper " + + "and use its onError operators to handle WebExchangeBindException: " + parameter.getMethod()); return errors; diff --git a/spring-webflux/src/test/java/org/springframework/web/reactive/result/method/annotation/ErrorsMethodArgumentResolverTests.java b/spring-webflux/src/test/java/org/springframework/web/reactive/result/method/annotation/ErrorsMethodArgumentResolverTests.java index 0e5050a022..88bb9fb072 100644 --- a/spring-webflux/src/test/java/org/springframework/web/reactive/result/method/annotation/ErrorsMethodArgumentResolverTests.java +++ b/spring-webflux/src/test/java/org/springframework/web/reactive/result/method/annotation/ErrorsMethodArgumentResolverTests.java @@ -123,7 +123,7 @@ public class ErrorsMethodArgumentResolverTests { public void resolveWithBindingResultNotFound() throws Exception { this.expectedException.expectMessage("An Errors/BindingResult argument is expected " + - "to be declared immediately after the @ModelAttribute argument"); + "immediately after the @ModelAttribute argument"); MethodParameter parameter = this.testMethod.arg(Errors.class); this.resolver.resolveArgument(parameter, this.bindingContext, this.exchange)