Example usage for org.springframework.web.method.support HandlerMethodArgumentResolverComposite getResolvers

List of usage examples for org.springframework.web.method.support HandlerMethodArgumentResolverComposite getResolvers

Introduction

In this page you can find the example usage for org.springframework.web.method.support HandlerMethodArgumentResolverComposite getResolvers.

Prototype

public List<HandlerMethodArgumentResolver> getResolvers() 

Source Link

Document

Return a read-only list with the contained resolvers, or an empty list.

Usage

From source file:io.neba.core.mvc.MvcContext.java

/**
 * Registers the custom argument resolvers if a {@link RequestMappingHandlerAdapter}
 * is present in the factory./*from  w ww. j  av  a2s.  c o  m*/
 */
private void registerCustomArgumentResolvers() {
    RequestMappingHandlerAdapter requestMappingHandlerAdapter = this.factory
            .getBean(RequestMappingHandlerAdapter.class);

    if (requestMappingHandlerAdapter != null) {
        HandlerMethodArgumentResolverComposite argumentResolvers = requestMappingHandlerAdapter
                .getArgumentResolvers();

        if (argumentResolvers == null) {
            throw new IllegalStateException("No argument resolvers found in " + requestMappingHandlerAdapter
                    + ". It appears the handler was not initialized by the application context.");
        }

        // Add Sling-specific argument resolvers first
        List<HandlerMethodArgumentResolver> resolvers = new LinkedList<HandlerMethodArgumentResolver>();
        resolvers.add(new RequestPathInfoArgumentResolver());
        resolvers.add(new ResourceResolverArgumentResolver());
        resolvers.add(new ResourceParamArgumentResolver());

        // Subsequently add all existing argument resolvers (they are order-sensitive, ending with a catch-all resolver,
        // thus the custom resolvers have to go first)
        resolvers.addAll(argumentResolvers.getResolvers());
        requestMappingHandlerAdapter.setArgumentResolvers(resolvers);
    }
}