我在Thymeleaf模板中有一个以下分离的片段.
<ul class="nav nav-tabs"> <li role="presentation"><a href="/">Freight Invoices</a></li> <li role="presentation"><a href="/processed">Processed Invoices</a></li> <li role="presentation"><a href="/postingrules">Posting Rules</a></li> <li role="presentation" class="active"><a href="/settings">Settings</a></li> </ul>
我想为活跃的导航元素添加一个“活动”类 – 但是在Thymyleaf中完成任务的建议似乎很困难,
解决方法
您可以添加一个ModelAttribute,其中每个页面的控制器中的值为活动值,例如:
SettingsController.java
@RequestMapping("/settings") public String viewSettings(Model model) { // do stuff model.addAttribute("classActiveSettings","active"); return "settings"; }
或者在一个SettingsControllerAdvice.java中
@ControllerAdvice(assignableTypes = SettingsController.class) public class SettingsControllerAdvice { @modelattribute("classActiveSettings") public String cssActivePage() { return "active"; } }
然后,在您的settings.html中包含的导航片段中:
<ul class="nav nav-tabs"> <!-- Other links --> <li role="presentation" th:class="${classActiveSettings}"> <a th:href="@{/settings}">Settings</a> </li> </ul>
最后,您可以为导航栏中的每个控制器和链接重复此过程.