Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法使用自定义比较器对thymeleaf中的对象进行排序_Java_Html_Spring_Sorting_Thymeleaf - Fatal编程技术网

Java 无法使用自定义比较器对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

我试图在用户单击价格或状态时对对象进行排序。到目前为止,我在这一页中列出了使用thymeleaf的常用方式的用户任务:

<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);