[英]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.