在使用百里香叶渲染我的html时,我希望有一个整数类型的计数器变量,但计数器变量意外增加。下面是我的代码。请帮忙。
>>> numpy.take(numpy.array(a_str), numpy.array(a_num)-1)
array(['c1', 'c2', 'c3', 'c4'], dtype='|S2')
答案 0 :(得分:1)
这是由于变量作用域的原因,它是在Thymeleaf issue 666中用另一种方法提出的:
由于使变量的作用域仅限于元素,因此您可能无法使用th:with获得总值,因此您需要在其他地方查找。
一种替代解决方案是在控制器中处理结果,将结果存储到模型属性,然后在视图中使用该结果。例如,在春季:
public String yourControllerEndpoint(Model model) { int total = // get the total of your list model.addAttribute("total", total); return "your-template"; } <table> <!-- Your looping display code here --> ... <span th:text="${total}">Total will go here</span> </table>
答案 1 :(得分:1)
您可以使用以下方法实现它:
在服务器端实现一个称为Counter的简单类:
public class Counter
{
private int count;
public Counter()
{
count = 0;
}
public Counter(int init)
{
count = init;
}
public int get()
{
return count;
}
public void clear()
{
count = 0;
}
public void increment()
{
count++;
}
public String toString()
{
return ""+count;
}
}
在您的servlet代码中添加:
context.addAttribute("counter", new Counter());
在您的模板中,您可以像这样使用和增加它:
<div th:with="mycounter = ${counter.get()}">
<div th:with="mycounter=${counter.incrementAndGet()}">
<span th:text="${mycounter}"></span> <!-- result: 1 -->
</div>
<div th:with="mycounter=${counter.incrementAndGet()}">
<span th:text="${mycounter}"></span> <!-- result: 2 , expected: 2-->
</div>
</div>