【问题标题】:Sharing modelAttribute between views of different controllers在不同控制器的视图之间共享 modelAttribute
【发布时间】:2019-06-05 21:38:37
【问题描述】:

在我当前的 Spring 项目(使用 Thymeleaf)中,我有这两个控制器 HomeController 和一个通用控制器,它扩展到与模型层中的实体关联的所有控制器。

HomeController,我有这个modelAttribute方法:

@ModelAttribute("usuario")
public Usuario usuario() {
  return usuario.findBy("username", SecurityContextHolder.getContext().getAuthentication().getName());
}

这显然可以通过这个控制器中映射的视图来访问。有没有办法与映射在另一个控制器中的视图共享这个 modelAttribute?

我在很多地方都读到过这个RedirectAttributes 资源,但我猜它只适用于重定向视图(如modelAndView.setViewName("redirect:welcome");)?

【问题讨论】:

    标签: spring model-view-controller modelattribute


    【解决方案1】:

    将该方法移至一个单独的类,并将@ControllerAdvice 注释添加到该类。这样,该类中的所有模型属性都将应用于应用程序中的所有控制器。

    如果您想限制模型属性可用的控制器集,您可以在 @ControllerAdvice 注释中指定只有特定包中的控制器或具有特定注释或实现特定接口的控制器才应增强。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-01-23
      • 1970-01-01
      • 1970-01-01
      • 2017-06-06
      • 2014-05-24
      • 2018-08-29
      • 2013-06-19
      相关资源
      最近更新 更多