diff --git a/src/docs/asciidoc/web/webflux.adoc b/src/docs/asciidoc/web/webflux.adoc index a43d12b0309..3b0e41a055b 100644 --- a/src/docs/asciidoc/web/webflux.adoc +++ b/src/docs/asciidoc/web/webflux.adoc @@ -1661,9 +1661,8 @@ and others) and is equivalent to `required=false`. See "`Any other argument`" later in this table. | `Errors`, `BindingResult` -| For access to errors from validation and data binding for a command object - (that is, a `@ModelAttribute` argument) or errors from the validation of a `@RequestBody` or - `@RequestPart` argument. An `Errors`, or `BindingResult` argument must be declared +| For access to errors from validation and data binding for a command object, i.e. a + `@ModelAttribute` argument. An `Errors`, or `BindingResult` argument must be declared immediately after the validated method argument. | `SessionStatus` + class-level `@SessionAttributes` @@ -2318,24 +2317,19 @@ you can declare a concrete target `Object`, instead of `Part`, as the following <1> Using `@RequestPart` to get the metadata. ==== -You can use `@RequestPart` combination with `javax.validation.Valid` or Spring's -`@Validated` annotation, which causes Standard Bean Validation to be applied. -By default, validation errors cause a `WebExchangeBindException`, which is turned -into a 400 (`BAD_REQUEST`) response. Alternatively, you can handle validation errors locally -within the controller through an `Errors` or `BindingResult` argument, as the following example shows: +You can use `@RequestPart` in combination with `javax.validation.Valid` or Spring's +`@Validated` annotation, which causes Standard Bean Validation to be applied. Validation +errors lead to a `WebExchangeBindException` that results in a 400 (BAD_REQUEST) response. +The exception contains a `BindingResult` with the error details and can also be handled +in the controller method by declaring the argument with an async wrapper and then using +error related operators: ==== [source,java,indent=0] [subs="verbatim,quotes"] ---- -@PostMapping("/") -public String handle(@Valid @RequestPart("meta-data") MetaData metadata, <1> - BindingResult result) { <2> - // ... -} ----- -<1> Using a `@Valid` annotation. -<2> Using a `BindingResult` argument. + public String handle(@Valid @RequestPart("meta-data") Mono metadata) { + // use one of the onError* operators... ==== To access all multipart data as a `MultiValueMap`, you can use `@RequestBody`, @@ -2407,20 +2401,18 @@ You can use the <> option of the < account) { + // use one of the onError* operators... ---- ====