Invoke global, then local @InitBinder/@ModelAttribute
@InitBinder and @ModelAttribute methods in @ControllerAdvice classes are now invoked first, allowing any such methods in the @Controller class to override them. Issue: SPR-10419
This commit is contained in:
@@ -181,7 +181,8 @@ public class RequestMappingHandlerAdapterTests {
|
||||
this.handlerAdapter.afterPropertiesSet();
|
||||
ModelAndView mav = this.handlerAdapter.handle(this.request, this.response, handlerMethod);
|
||||
|
||||
assertEquals("globalAttrValue", mav.getModel().get("globalAttr"));
|
||||
assertEquals("lAttr1", mav.getModel().get("attr1"));
|
||||
assertEquals("gAttr2", mav.getModel().get("attr2"));
|
||||
}
|
||||
|
||||
|
||||
@@ -200,6 +201,11 @@ public class RequestMappingHandlerAdapterTests {
|
||||
@SuppressWarnings("unused")
|
||||
private static class SimpleController {
|
||||
|
||||
@ModelAttribute
|
||||
public void addAttributes(Model model) {
|
||||
model.addAttribute("attr1", "lAttr1");
|
||||
}
|
||||
|
||||
public String handle() {
|
||||
return null;
|
||||
}
|
||||
@@ -227,7 +233,8 @@ public class RequestMappingHandlerAdapterTests {
|
||||
|
||||
@ModelAttribute
|
||||
public void addAttributes(Model model) {
|
||||
model.addAttribute("globalAttr", "globalAttrValue");
|
||||
model.addAttribute("attr1", "gAttr1");
|
||||
model.addAttribute("attr2", "gAttr2");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user