result.add(new HttpEntityArgumentResolver(readers, reactiveRegistry)); result.add(new ModelArgumentResolver(reactiveRegistry)); if (supportDataBinding) { result.add(new ErrorsMethodArgumentResolver(reactiveRegistry));
@Override public boolean supportsParameter(MethodParameter parameter) { return checkParameterTypeNoReactiveWrapper(parameter, type -> Model.class.isAssignableFrom(type) || Map.class.isAssignableFrom(type)); }
@Test public void supportsParameter() throws Exception { assertTrue(this.resolver.supportsParameter(this.testMethod.arg(Model.class))); assertTrue(this.resolver.supportsParameter(this.testMethod.arg(Map.class, String.class, Object.class))); assertTrue(this.resolver.supportsParameter(this.testMethod.arg(ModelMap.class))); assertFalse(this.resolver.supportsParameter(this.testMethod.arg(Object.class))); }
private void testResolveArgument(MethodParameter parameter) { BindingContext context = new BindingContext(); Object result = this.resolver.resolveArgument(parameter, context, this.exchange).block(Duration.ZERO); assertSame(context.getModel(), result); }
@Before public void setUp() throws Exception { ReactiveAdapterRegistry adapterRegistry = ReactiveAdapterRegistry.getSharedInstance(); ArgumentResolverConfigurer resolverConfigurer = new ArgumentResolverConfigurer(); resolverConfigurer.addCustomResolver(new ModelArgumentResolver(adapterRegistry)); ControllerMethodResolver methodResolver = new ControllerMethodResolver( resolverConfigurer, adapterRegistry, new StaticApplicationContext(), Collections.emptyList()); this.modelInitializer = new ModelInitializer(methodResolver, adapterRegistry); }
protected List<SyncHandlerMethodArgumentResolver> getDefaultInitBinderArgumentResolvers() { List<SyncHandlerMethodArgumentResolver> resolvers = new ArrayList<>(); // Annotation-based argument resolution resolvers.add(new RequestParamMethodArgumentResolver(getBeanFactory(), false)); resolvers.add(new RequestParamMapMethodArgumentResolver()); resolvers.add(new PathVariableMethodArgumentResolver(getBeanFactory())); resolvers.add(new PathVariableMapMethodArgumentResolver()); resolvers.add(new RequestHeaderMethodArgumentResolver(getBeanFactory())); resolvers.add(new RequestHeaderMapMethodArgumentResolver()); resolvers.add(new CookieValueMethodArgumentResolver(getBeanFactory())); resolvers.add(new ExpressionValueMethodArgumentResolver(getBeanFactory())); resolvers.add(new RequestAttributeMethodArgumentResolver(getBeanFactory())); // Type-based argument resolution resolvers.add(new ModelArgumentResolver()); resolvers.add(new ServerWebExchangeArgumentResolver()); // Custom resolvers if (getCustomInitBinderArgumentResolvers() != null) { resolvers.addAll(getCustomInitBinderArgumentResolvers()); } // Catch-all resolvers.add(new RequestParamMethodArgumentResolver(getBeanFactory(), true)); return resolvers; }
resolvers.add(new ModelArgumentResolver()); resolvers.add(new ErrorsMethodArgumentResolver(getReactiveAdapterRegistry())); resolvers.add(new ServerWebExchangeArgumentResolver());