Support declarativeBinding mode in DataBinder

Closes gh-30948
This commit is contained in:
rstoyanchev
2023-07-25 18:04:21 +03:00
parent 37eaded63d
commit 67e3d86bd8
7 changed files with 106 additions and 0 deletions

View File

@@ -2056,6 +2056,26 @@ class ServletAnnotationControllerHandlerMethodTests extends AbstractServletHandl
assertThat(response.getContentAsString()).isEqualTo("value1-true-3");
}
@PathPatternsParameterizedTest
void dataClassBindingWithAdditionalSetterInDeclarativeBindingMode(boolean usePathPatterns) throws Exception {
initDispatcherServlet(DataClassController.class, usePathPatterns, wac -> {
ConfigurableWebBindingInitializer initializer = new ConfigurableWebBindingInitializer();
initializer.setDeclarativeBinding(true);
RootBeanDefinition mappingDef = new RootBeanDefinition(RequestMappingHandlerAdapter.class);
mappingDef.getPropertyValues().add("webBindingInitializer", initializer);
wac.registerBeanDefinition("handlerAdapter", mappingDef);
});
MockHttpServletRequest request = new MockHttpServletRequest("GET", "/bind");
request.addParameter("param1", "value1");
request.addParameter("param2", "true");
request.addParameter("param3", "3");
MockHttpServletResponse response = new MockHttpServletResponse();
getServlet().service(request, response);
assertThat(response.getContentAsString()).isEqualTo("value1-true-0");
}
@PathPatternsParameterizedTest
void dataClassBindingWithResult(boolean usePathPatterns) throws Exception {
initDispatcherServlet(ValidatedDataClassController.class, usePathPatterns);