diff --git a/spring-web-reactive/src/main/java/org/springframework/web/reactive/result/SimpleResultHandler.java b/spring-web-reactive/src/main/java/org/springframework/web/reactive/result/SimpleResultHandler.java index b32a4d0f76..1b9c7b1d61 100644 --- a/spring-web-reactive/src/main/java/org/springframework/web/reactive/result/SimpleResultHandler.java +++ b/spring-web-reactive/src/main/java/org/springframework/web/reactive/result/SimpleResultHandler.java @@ -56,6 +56,13 @@ public class SimpleResultHandler implements Ordered, HandlerResultHandler { } + /** + * Set the order for this result handler relative to others. + *
By default this is set to {@link Ordered#LOWEST_PRECEDENCE} and is + * generally safe to use late in the order since it looks specifically for + * {@code void} or async return types parameterized by {@code void}. + * @param order the order + */ public void setOrder(int order) { this.order = order; } diff --git a/spring-web-reactive/src/main/java/org/springframework/web/reactive/result/view/ViewResolverResultHandler.java b/spring-web-reactive/src/main/java/org/springframework/web/reactive/result/view/ViewResolverResultHandler.java index 4b3ed3639a..c858401b23 100644 --- a/spring-web-reactive/src/main/java/org/springframework/web/reactive/result/view/ViewResolverResultHandler.java +++ b/spring-web-reactive/src/main/java/org/springframework/web/reactive/result/view/ViewResolverResultHandler.java @@ -70,6 +70,14 @@ public class ViewResolverResultHandler implements HandlerResultHandler, Ordered return Collections.unmodifiableList(this.viewResolvers); } + /** + * Set the order for this result handler relative to others. + *
By default this is set to {@link Ordered#LOWEST_PRECEDENCE} and
+ * generally needs to be used late in the order since it interprets any
+ * String return value as a view name while others may interpret the same
+ * otherwise based on annotations (e.g. for {@code @ResponseBody}).
+ * @param order the order
+ */
public void setOrder(int order) {
this.order = order;
}
@@ -79,7 +87,7 @@ public class ViewResolverResultHandler implements HandlerResultHandler, Ordered
return this.order;
}
- // TODO: Add support for model-related return value (Model, ModelAndView, @ModelAttribute)
+ // TODO: Support for Model, ModelAndView, @ModelAttribute, Object with no method annotations
@Override
public boolean supports(HandlerResult result) {
diff --git a/spring-web-reactive/src/test/java/org/springframework/web/reactive/result/method/annotation/RequestMappingIntegrationTests.java b/spring-web-reactive/src/test/java/org/springframework/web/reactive/result/method/annotation/RequestMappingIntegrationTests.java
index 2be8ca1eb1..0e38a43b6b 100644
--- a/spring-web-reactive/src/test/java/org/springframework/web/reactive/result/method/annotation/RequestMappingIntegrationTests.java
+++ b/spring-web-reactive/src/test/java/org/springframework/web/reactive/result/method/annotation/RequestMappingIntegrationTests.java
@@ -415,25 +415,18 @@ public class RequestMappingIntegrationTests extends AbstractHttpHandlerIntegrati
new CodecHttpMessageConverter<>(new ByteBufferEncoder(), new ByteBufferDecoder()),
new CodecHttpMessageConverter<>(new StringEncoder(), new StringDecoder()),
new CodecHttpMessageConverter<>(new JacksonJsonEncoder(), new JacksonJsonDecoder()));
- ResponseBodyResultHandler resultHandler =
- new ResponseBodyResultHandler(converters, conversionService());
- resultHandler.setOrder(1);
- return resultHandler;
+ return new ResponseBodyResultHandler(converters, conversionService());
}
@Bean
public SimpleResultHandler simpleHandlerResultHandler() {
- SimpleResultHandler resultHandler = new SimpleResultHandler(conversionService());
- resultHandler.setOrder(2);
- return resultHandler;
+ return new SimpleResultHandler(conversionService());
}
@Bean
public ViewResolverResultHandler viewResolverResultHandler() {
List