【发布时间】:2019-11-11 04:02:50
【问题描述】:
总的来说,我对编码非常陌生,并且一直在学习 Java。我们已经开始学习 Spring Boot 和 Thymeleaf,我们必须开发一个使用关键字搜索工作的应用程序。我创建了一个处理程序,以便能够搜索作业并将它们添加到ArrayList 或HashMap,并有一个显示这些结果的模板。但是,我的问题是我们应该每次在页面顶部显示结果数量,我不知道该怎么做。
我已经尝试过使用.size、#lists、#maps、th:size,我能想到的一切。没有任何工作。我试过把它放在桌子上方,桌子里,循环之间,一切。我得到的最接近的只是在页面顶部打印“结果”一词。我一直在阅读 Thymeleaf 教程,查看 Baeldung,谷歌搜索了好几天。
我非常感谢任何帮助!
@RequestMapping(value = "results")
public String search(
Model model,
@RequestParam String searchType,
@RequestParam String searchTerm
) {
ArrayList<HashMap<String, String>> results =
JobData.findByColumnAndValue(searchType, searchTerm);
model.addAttribute("columns", ListController.columnChoices);
model.addAttribute("results", results);
return "search";
}
还有百里香:
<hr />
<!--<span th:text="${results.size}">Result</span> -->
<!--<span th:text="${#lists.size(job.results)}">Result(s)</span> -->
<!-- <td th:text="${#lists.size(job.results)}">Result(s)</td> -->
<!-- TODO #2 - Loop over jobs map to display all job fields -->
<!--<div th:fragment="div"> -->
<table class="job-listing" th:each="job : ${results}">
<tr th:each="row : ${job}">
<!--<td th:text="${results.size}"></td>-->
<td th:text="${row.key}"></td>
<td th:text="${row.value}"></td>
</tr>
</table>
</div>
<!-- </table>-->
<!--</div> -->
</body>
</html>
我已经包含了我的处理程序方法,以及我正在使用的模板中的代码。对不起所有的 cmets - 我正在尝试跟踪我尝试过的内容。
编辑:现在这是我的模板代码,仅在我进行搜索(我想要的)后才打印单词“Result(s)”。我现在的问题是我仍然无法打印结果数。
<span th:if="${results} and ${results.size()}">
<h3>Result(s)</h3>
</span>
<table class="job-listing" th:each="job : ${results}">
<tr th:each="row : ${job}">
<td th:text="${row.key}"></td>
<td th:text="${row.value}"></td>
</tr>
</table>
【问题讨论】:
标签: java loops spring-boot hashmap thymeleaf