Предполагая, что у вас есть Pageable
или Page
в вашем Controller
, поэтому вы можете получить к нему доступ Sort
, вызвав его метод getSort()
. Зная, что Sort
равно Iterable<Order>
, вы сможете перебирать Order
экземпляров - каждый из которых содержит пару (свойство, направление) - и строить произвольную строку sort
. Вот пример, использующий потоки и лямбды Java 8, но, конечно, это можно сделать обязательно:
String sort = page.getSort().stream()
.map(order -> order.getProperty() + ":" + order.getDirection())
.collect(Collectors.joining(","));
model.addAttribute("sort", sort);
Этот пример объединяет свойство и направление, используя ":"
, а затем объединяет все заказы, используя ","
. Согласно вашему комментарию, вы хотите использовать ","
вместо ":"
, но это может привести к другим проблемам с анализом списка Order
.
Возможно, вы захотите посмотреть, как работает SortHandlerMethodArgumentResolver
, в частности его метод parseParameterIntoSort
, чтобы понять, как работает соответствующая логика синтаксического анализа.