spring - 在不同控制器的视图之间共享modelAttribute
问题描述
在我当前的 Spring 项目中(使用 Thymeleaf),我将这两个控制器HomeController
和一个通用控制器扩展到与模型层中的实体关联的所有控制器。
在中HomeController
,我有这个 modelAttribute 方法:
@ModelAttribute("usuario")
public Usuario usuario() {
return usuario.findBy("username", SecurityContextHolder.getContext().getAuthentication().getName());
}
这显然可以通过这个控制器中映射的视图来访问。有没有办法与另一个控制器中映射的视图共享这个 modelAttribute ?
我在很多地方都读过这个RedirectAttributes
资源,但我猜它只适用于重定向视图(如modelAndView.setViewName("redirect:welcome");
)?
解决方案
将该方法移动到单独的类并将@ControllerAdvice
注释添加到该类。这样,该类中的所有模型属性都将应用于应用程序中的所有控制器。
如果您想限制模型属性可用的控制器集,您可以在 @ControllerAdvice
注释中指定仅应增强特定包中或具有特定注释或实现特定接口的控制器。
推荐阅读
- vue.js - Hybris 店面(模板开发人员)
- machine-learning - GCP AutoML Tables 预测在线需要几秒钟
- python - 在python文本中创建下标c
- javascript - 如何渲染带有边界的地图,这些边界保存在传单中的 zoomend 函数中
- reactjs - 设置状态,点击按钮
- javascript - 在故事书 5.2 中使用装饰器包装故事 - 打字稿/角度
- android - 如何将 JNI jstring 复制到 C++ std::string 中
- javascript - CKeditor 无法在 laravel 中加载
- html - CSS 网格问题:我无法让外部网格容器填满整个页面
- html - 页面刷新时出现奇怪的字体故障