Spring Boot中如何让/menu多级子URL保持导航标签激活状态?
解决导航标签在多级子URL下的高亮问题
你当前用精确匹配/menu的方式,自然没法覆盖/menu/new/...这类子路径,给你两种实用的解决办法:
方法一:判断请求URI是否以
/menu开头
直接用Thymeleaf的#strings.startsWith方法替换原来的equals,只要URI以/menu开头就添加激活类:<a class="nav-link" th:classappend="${#strings.startsWith(#request.requestURI, '/menu')} ? 'active' : ''" href="/menu">menu</a>(顺便提一句,你代码里的
href指向了/board/boardList,大概率是笔误,改成/menu更符合导航逻辑)方法二:更严谨的前缀匹配(避免误判类似
/menuXXX的路径)
如果担心有其他以menu开头但不是子路径的URL(比如/menu123),可以同时匹配根路径和以/menu/开头的子路径:<a class="nav-link" th:classappend="${#request.requestURI.equals('/menu') or #strings.startsWith(#request.requestURI, '/menu/')} ? 'active' : ''" href="/menu">menu</a>
这两种方法都能让/menu及其所有多级子页面的导航标签保持高亮状态,根据你的实际URL结构选就行。
内容的提问来源于stack exchange,提问作者CescoDesu
相关产品推荐
相关产品推荐

