如何在 Thymeleaf 片段中重复 Spring 模型
How to repeat a Spring model in a Thymeleaf fragment
我有一个 Spring + Thymeleaf 项目。我有 header 部分的片段和一些包含 header.
的页面
下面是 header 片段的(重要部分)。如您所见,它包括 activeUserWorkgroup
模型 object
dashboard-header.html
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:th="http://www.thymeleaf.org">
<body>
<header th:fragment="dashboard-header" class="header">
....
<div class="navbar-right">
<ul class="nav navbar-nav">
<li class="dropdown notifications-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
<span class="user-label" style="margin-left:5px;"
th:text="${activeUserWorkgroup.getWorkgroupLabel()}">
</span>
</a>
</li>
</ul>
</div>
</nav>
</header>
</body>
</html>
在我需要 header 片段的每个 Spring 视图中,我添加了行
<div th:replace="fragments/dashboard-header :: dashboard-header"></div>
问题是,在我需要这个 header 的每个视图的每个控制器中,我必须为 activeUserWorkgroup
模型 object 提供正确的值。这既不舒服又容易出错。
有什么方法可以让 Spring 为 activeUserWorkgroup
object 提供正确的模型值,而不必在每个控制器中编写代码?
谢谢
这可能是您要查找的内容。我要做的是创建 return 只是模型对象 activeUseWorkgroup
的控制器。然后让所有其他控制器扩展它。
@Controller
public ControllerA
{
@ModelAttribute("activeUserWorkgroup")
public Object getActiveUserWorkgroup()
{
return new Object();
}
}
@Controller
public ControllerB extends ControllerA
{
}
创建一个 ControllerAdvice 可能更好,请阅读此处的文档 link http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/bind/annotation/ControllerAdvice.html
@ControllerAdvice
public class GlobalControllerAdvice extends ResponseEntityExceptionHandler {
@ModelAttribute("activeUserWorkgroup ")
public String getActiveWorkgroup() {
//YOUR CODE
}
}
我有一个 Spring + Thymeleaf 项目。我有 header 部分的片段和一些包含 header.
的页面下面是 header 片段的(重要部分)。如您所见,它包括 activeUserWorkgroup
模型 object
dashboard-header.html
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:th="http://www.thymeleaf.org">
<body>
<header th:fragment="dashboard-header" class="header">
....
<div class="navbar-right">
<ul class="nav navbar-nav">
<li class="dropdown notifications-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
<span class="user-label" style="margin-left:5px;"
th:text="${activeUserWorkgroup.getWorkgroupLabel()}">
</span>
</a>
</li>
</ul>
</div>
</nav>
</header>
</body>
</html>
在我需要 header 片段的每个 Spring 视图中,我添加了行
<div th:replace="fragments/dashboard-header :: dashboard-header"></div>
问题是,在我需要这个 header 的每个视图的每个控制器中,我必须为 activeUserWorkgroup
模型 object 提供正确的值。这既不舒服又容易出错。
有什么方法可以让 Spring 为 activeUserWorkgroup
object 提供正确的模型值,而不必在每个控制器中编写代码?
谢谢
这可能是您要查找的内容。我要做的是创建 return 只是模型对象 activeUseWorkgroup
的控制器。然后让所有其他控制器扩展它。
@Controller
public ControllerA
{
@ModelAttribute("activeUserWorkgroup")
public Object getActiveUserWorkgroup()
{
return new Object();
}
}
@Controller
public ControllerB extends ControllerA
{
}
创建一个 ControllerAdvice 可能更好,请阅读此处的文档 link http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/bind/annotation/ControllerAdvice.html
@ControllerAdvice
public class GlobalControllerAdvice extends ResponseEntityExceptionHandler {
@ModelAttribute("activeUserWorkgroup ")
public String getActiveWorkgroup() {
//YOUR CODE
}
}