通过百里香片段共享数据

时间:2019-04-18 17:20:37

标签: java spring-boot thymeleaf

我有一个名为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>

但是我现在要做的是从数据库中获取一些数据,并在该片段中提供该数据,然后该数据将出现在包含该片段的每个页面上。

如果我想定期从控制器向视图传递数据,我将使用Modelmodel.addAttribute并返回包含相关模型数据的适当视图,但是如何传递数据这个片段?

1 个答案:

答案 0 :(得分:0)

  1. 您可以在postHandle方法上创建一个拦截器并添加模型属性(该方法允许您访问ModelAndView对象。拦截器必须位于具有此属性的所有控制器上片段。

  2. 您可以将相关的模型属性添加到会话中,并通过${session.attribute}访问它们。

  3. 结合使用@ControllerAdvice注释和@ModelAttribute为所有控制器添加模型属性。