我有一个名为nav
的百里香叶片段,我将其包含在所有前端页面中,就像这样:
<nav class="navbar navbar-expand-md navbar-dark bg-dark" th:fragment="nav">
<div class="collapse navbar-collapse" id="navbarsExampleDefault">
<ul class="navbar-nav mr-auto">
<li class="nav-item active">
<a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
</li>
How to get Java data here ?
</ul>
</div>
</nav>
但是我现在要做的是从数据库中获取一些数据,并在该片段中提供该数据,然后该数据将出现在包含该片段的每个页面上。
如果我想定期从控制器向视图传递数据,我将使用Model
和model.addAttribute
并返回包含相关模型数据的适当视图,但是如何传递数据这个片段?
答案 0 :(得分:0)
您可以在postHandle
方法上创建一个拦截器并添加模型属性(该方法允许您访问ModelAndView
对象。拦截器必须位于具有此属性的所有控制器上片段。
您可以将相关的模型属性添加到会话中,并通过${session.attribute}
访问它们。
结合使用@ControllerAdvice
注释和@ModelAttribute
为所有控制器添加模型属性。