我正在从数据库中调用一个int值来确定应该使用thymeleaf和Spring Boot在我的html中显示的星数,但是使用$ {#numbers.sequence(1,obj.stars)}不会似乎工作。
这是我的html-thymeleaf代码:
<tr th:each="obj : ${allObjs}" class="pointer" th:onclick="'javascript:openobj(\'' + ${obj.id} + '\');'">
<td class="text-center" th:text="${obj.id}"></td>
<td class="text-center" th:text="${obj.code}"></td>
<td class="text-center" th:text="${obj.name}"></td>
<td class="text-center" th:text="${obj.contract}"></td>
<td class="text-center" th:text="${obj.difficulty}"></td>
<td class="text-center" th:text="${obj.priority}"></td>
<td class="text-center">
<!--this is the line I can't get to work :(-->
<span class="fa fa-star-o" th:each="star:${#numbers.sequence(1,obj.stars)}"></span>
</td>
<td class="text-center" th:text="${obj.state}"></td>
<td class="text-center" th:text="${obj.percent}"></td>
<td class="text-center" th:text="${obj.term}"></td>
<td class="text-center" th:text="${obj.version}"></td>
<td class="text-center" th:text="${obj.price}"></td>
</tr>
和我的控制器
@GetMapping("/Obj")
public ModelAndView index() {
ModelAndView view = new ModelAndView("/Obj/index");
view.addObject("title", "Obj");
List<Obj> allObjs = ObjService.findAll();
view.addObject("allObjs", allObjs);
return view;
}
答案 0 :(得分:6)
嗯,我知道回答你自己的问题很奇怪但是,感谢Michael Petch的测试,我发现问题出现在序列中。当我在obj.stars中的值为0时从1开始,因此无法使用步长1创建序列。
将其更改为
<span class="fa fa-star-o" th:each="star:${#numbers.sequence(0,obj.stars)}"></span>
解决了这个问题。