I\'m using Spring MVC Framework and I\'d like all the .jsp pages of the View to have access to the User\'s attributes(name, sex, age...). So far, I
You can use Spring's @ControllerAdvice annotation on a new Controller class like this:
@ControllerAdvice
public class GlobalControllerAdvice {
@ModelAttribute("user")
public List populateUser() {
User user = /* Get your user from service or security context or elsewhere */;
return user;
}
}
The populateUser method will be executed on every request and since it has a @ModelAttribute annotation, the result of the method (the User object) will be put into the model for every request through the user name, it declared on the @ModelAttribute annotation.
Theefore the user will be available in your jsp using ${user} since that was the name given to the @ModelAttribute (example: @ModelAttribute("fooBar") -> ${fooBar} )
You can pass some arguments to the @ControllerAdvice annotation to specify which controllers are advised by this Global controller. For example:
@ControllerAdvice(assignableTypes={FooController.class,BarController.class})
or
@ControllerAdvice(basePackages={"foo.bar.web.admin","foo.bar.web.management"}))