Ja'*_*daf 4 java spring spring-boot
我想知道如何创建一个在每个页面上动态加载(从数据库)的菜单。
我使用 Spring Boot + thymeleaf。没有 XML,只有 spring 注释。
我尝试添加一个控制器,其方法返回一个用 (@ModelAttribute) 注释的类别对象(在菜单中使用),但我无法在 HTML 页面中使用该属性。这是我的标题:
<ul>
<li th:each="category : ${categories}" th:text="${category.name}">
</ul>
Run Code Online (Sandbox Code Playgroud)
现在,这个“ul”会加载到每个页面中,因为它位于菜单栏上。我不想在每个控制器中添加以下代码:
ModelAndView mav = new ModelAndView("index");
mav.addObject("categories", getCategories());
Run Code Online (Sandbox Code Playgroud)
我需要一种方法来实现这一点,而无需在每个控制器上添加此代码。就一次。
谢谢
您可以使用@ControllerAdvice,为每个控制器响应添加“类别”属性。由于它是一个 spring 组件,因此您可以自动装配其中的任何现有服务来检索类别。
@ControllerAdvice
public class CategoriesAdvice {
@ModelAttribute
public void addAttributes(Model model) {
model.addAttribute("categories", getCategories());
}
}
Run Code Online (Sandbox Code Playgroud)
请参阅我的 github 项目以及完整的解决方案:project
| 归档时间: |
|
| 查看次数: |
2527 次 |
| 最近记录: |