在我当前的Spring项目(使用Thymeleaf)中,我拥有这两个控制器HomeController
和一个通用控制器,扩展到从模型层到与实体相关联的所有控制器。
在HomeController
中,我有这个modelAttribute方法:
@ModelAttribute("usuario")
public Usuario usuario() {
return usuario.findBy("username", SecurityContextHolder.getContext().getAuthentication().getName());
}
显然,此控制器中映射的视图是必需的。有什么方法可以与另一个控制器中映射的视图共享此modelAttribute?
我在很多地方都读过有关RedirectAttributes
资源的信息,但我猜想它仅适用于重定向视图(例如modelAndView.setViewName("redirect:welcome");
)?
答案 0 :(得分:1)
将方法移至单独的类,并向该类添加@ControllerAdvice
批注。这样,该类中的所有模型属性都将应用于应用程序中的所有控制器。
如果要限制模型属性可用的控制器组,可以在@ControllerAdvice
批注中指定仅应增强特定程序包中,带有特定批注或实现特定接口的控制器。