Java 无法使用自定义比较器对thymeleaf中的对象进行排序
我试图在用户单击价格或状态时对对象进行排序。到目前为止,我在这一页中列出了使用thymeleaf的常用方式的用户任务:Java 无法使用自定义比较器对thymeleaf中的对象进行排序,java,html,spring,sorting,thymeleaf,Java,Html,Spring,Sorting,Thymeleaf,我试图在用户单击价格或状态时对对象进行排序。到目前为止,我在这一页中列出了使用thymeleaf的常用方式的用户任务: <div th:each="task: ${tasks}"> <div class="col-md-4"> <h4 th:text="${task.title}"></h4>... 在控制器方面,我有以下内容: List<Task> userTasks = ge
<div th:each="task: ${tasks}">
<div class="col-md-4">
<h4 th:text="${task.title}"></h4>...
在控制器方面,我有以下内容:
List<Task> userTasks = getUserTasks();
Comparator<Task> priceComparator = new Comparator<Task>()
{
@Override
public int compare(Task task1, Task task2)
{
return task1.getPrice().compareTo(task2.getPrice());
}
};
我在互联网上找不到任何关于使用不同标准(如价格、状态等)动态排序对象列表的信息(在我的例子中)。任何帮助都将不胜感激。您是否希望在浏览器中进行排序,而不必往返服务器?Thymeleaf只在服务器上运行,作为HTML的预处理器——因此,如果是这样的话,它不会有帮助。如果您点击了服务器,那么有更好的方法对列表进行排序(Java代码,而不是Thymeleaf)。如果您想留在客户机中,那么我的建议是查看基于JavaScript的数据网格/表。(就我个人而言,我从未需要过
#lists.sort()
)@andrewjames谢谢你的回答,安德鲁,现在我把事情弄清楚了。是的,我只想分类客户端,不影响背面。因此,我将寻找一种使用JavaScript对收到的列表进行排序的方法。
List<Task> userTasks = getUserTasks();
Comparator<Task> priceComparator = new Comparator<Task>()
{
@Override
public int compare(Task task1, Task task2)
{
return task1.getPrice().compareTo(task2.getPrice());
}
};
model.addAttribute("priceComparator",priceComparator);
model.addAttribute("tasks",userTasks);