我使用Thymeleaf进行以下导航,并且我想在选择链接时附加CSS类:
<div class="nav-links">
<a th:href="@{/somepage(someId=${someId},filter='filterA')}" href="/somepage"
class="subnav-item"
th:classappend="${selected}">Filter A</a>
<a th:href="@{/somepage(someId=${someId},filter='filterB')}" href="/somepage"
class="subnav-item"
th:classappend="${selected}">Filter B</a>
<a th:href="@{/somepage(someId=${someId},filter='filterC')}" href="/somepage"
class="subnav-item"
th:classappend="${selected}">Filter C</a>
</div>
假设有些样式:
.subnav-item.selected, .subnav-item.selected:hover, .subnav-item.selected:focus {
background-color: #FFF;
border-color: #000;
}
查看this question,可以根据页面的URI轻松完成(在本例中为somepage
,但我需要根据请求参数选择性地工作(在这种情况下) ,filter
)。有一种简单的方法吗?
我尝试将selected
值添加到服务器端的模型中,并单独尝试使用请求本身,但它没有根据filter
参数进行区分(仅在{{1}上) } page)。
是使用somepage
做一些hacky东西的唯一方法吗?
答案 0 :(得分:1)
找到答案。 HttpServletRequest
有一个可以轻松访问的实用工具:
th:classappend="${#request.getParameter('filter') == 'filterA' ? 'selected' : ''}"