簡體   English   中英

如何在Thymeleaf中靜態初始化Map?

[英]How to static initialize a Map in Thymeleaf?

我有以下thymeleaf導航欄html,並且想通過從靜態Map重復使用th:each來創建鏈接來縮短它:

<div id="navbar" class="collapse navbar-collapse">
    <ul class="nav navbar-nav">
        <li th:classappend="${#httpServletRequest.getRequestURI() == '/home' ? 'active':''}">
            <a href="/home">Home</a></li>
        <li th:classappend="${#httpServletRequest.getRequestURI() == '/pax' ? 'active':''}">
            <a href="/pax">Person</a></li>
        <li th:classappend="${#httpServletRequest.getRequestURI() == '/about' ? 'active':''}">
            <a href="/about">About</a></li>
    </ul>
</div>

問題是:如何在html頁面內初始化靜態Map ,而不必綁定到后端控制器? 該映射的鍵值應表示“ URL路徑”和“鏈接名稱”之間的映射。

在Java代碼中,這將是:

new HashMap<String, String>() {{
   put("/pax", "Person");
}};

但是,如何在沒有后端代碼的情況下以純百里香html來實現呢?

如同:

<li th:each="entry : ${HOW TO HASHMAP}"
    th:classappend="${#httpServletRequest.getRequestURI() == '/'+entry.getKey()' ? 'active':''}">
  <a th:href="'/'+${link.getKey()}" th:text="$entry.getValue()"/>
</li>

Spring表達式內聯映射 (方括號之間的空格- ${ { -很重要,否則表達式將使用百里香雙括號語法來解釋。)

<li th:each="entry: ${ {home:'Home', pax:'Person', about:'About'} }"
    th:classappend="${#httpServletRequest.getRequestURI() == '/' + entry.key ? 'active' : ''}">
  <a th:href="'/' + ${entry.key}" th:text="${entry.value}"/>
</li>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM