Polish result handlers default order
This commit is contained in:
@@ -56,6 +56,13 @@ public class SimpleResultHandler implements Ordered, HandlerResultHandler {
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Set the order for this result handler relative to others.
|
||||
* <p>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;
|
||||
}
|
||||
|
||||
@@ -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.
|
||||
* <p>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) {
|
||||
|
||||
@@ -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<ViewResolver> resolvers = Collections.singletonList(freeMarkerViewResolver());
|
||||
ViewResolverResultHandler resultHandler = new ViewResolverResultHandler(resolvers, conversionService());
|
||||
resultHandler.setOrder(3);
|
||||
return resultHandler;
|
||||
return new ViewResolverResultHandler(resolvers, conversionService());
|
||||
}
|
||||
|
||||
@Bean
|
||||
|
||||
Reference in New Issue
Block a user