Es wird verwendet, wenn Sie eine Tabelle mit variablen Elementen ausgeben möchten, die von Thymeleaf ausgegeben werden sollen.
SpringBoot 2.0.3.RELEASE ( Thymeleaf 3.0.9.RELEASE )
Übergeben Sie im Controller das Format Map <String, Object>. Ich verwende jedoch LinkedHashMap, da ich immer die Ausgabereihenfolge von Map bestimmen möchte.
package alphapz.thymeleaf.controller;
import java.util.LinkedHashMap;
import java.util.Map;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.servlet.ModelAndView;
/**
* @author A-pZ
*
*/
@Controller
public class MatrixController {
@GetMapping("")
public ModelAndView display(ModelAndView mnv) {
mnv.addObject("data", matrix);
mnv.setViewName("index");
return mnv;
}
private Map<String, Object> matrix = new LinkedHashMap<String, Object>() {{
put("id","ID001");
put("name","username");
put("address","USER_ADDRESS");
}};
}
View (Template)
Da die vorherige Karte mit dem Namen der Daten gespeichert ist, geben Sie sie mit th: each an, wodurch das Erfassungssystem wiederholt angezeigt wird.
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<body>
<table>
<thead class="thead-dark">
<tr>
<th th:each="entry : ${data}" th:text="${entry.key}"></th>
</tr>
</thead>
<tbody>
<tr>
<td th:each="entry : ${data}" th:text="${entry.value}"></td>
</tr>
</tbody>
</table>
</body>
</html>
Das von th: jedes abgerufene Element ist ein EntrySet, sodass der Schlüsselname aus dem Schlüssel und der Wert aus dem Wert abgerufen werden kann.