2017-01-23 52 views
1

我使用Thymeleaf以下導航,我想追加一個CSS類當選擇鏈接:使用日:classappend根據要求PARAM

<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參數(僅在somepage頁面上)。

是做一些哈克的東西與request.getQueryString()的唯一途徑?

回答

1

找到了答案。還有的HttpServletRequest一種實用工具,可以很容易地這樣來訪問:

th:classappend="${#request.getParameter('filter') == 'filterA' ? 'selected' : ''}"

+1

對於那些還在使用thymeleaf 2.x中,有#httpServletRequest – ashario

+0

人應該升級:) – bphilipnyc

+0

醫管局更換#request!我昨天終於咬住了子彈 – ashario