springboot Pageable排序问题,前台ajax传参,sort属性怎么传递多字段?请各路大神看问题描述。

这个博客springmvc 通过 Pageable对象和PageableDefault注解获取分页信息,解决了以url方式传递多个sort排序字段,如下:

sort,排序相关的信springmvc的工作原理息,以p排序英文roperty,property(,ASC|DESC)springboot自动装配的方式组织,例如sort=firstname&sort=lastname,desc表示在按firstname正序排列基础上按lastname倒序排列。

我想使用ajax传递多个排序属性,如下,提问了博主也没回答排序英文,所以来请教。

var data = {
page:params.offset/params.limit,
size: params.limit,//默认是10
sort:???怎么写
};

回答

看我的 《Netkilspringboot是什么框架ler Spring cloud 手札》里面有讲。

没有我想要的

多个字段用数组或集springboot自动装配

哎,石城大海了

Sort对象的构造方法有如下一个

public Sort(Sort.Order... orders)

如果你的spring-data版本较新,该方法已过期,可以直接用静态方法创建

public static Sort by(List<Sort.Order> orders)

该构造方法允许你可springboot是什么框架以通过ajax是什么意思多个Order对象创建一个排序pagedown键在哪请求

Sort.Order的构造方法是提供一个Direction和排序字段

public Order(@Nullable Sort.Direction direction, String property)

那么你的ajax数据中sort对象可以设计为一个json数组,数组内容就是多个Order,如:

{
  sort:[
    {
      direction: 'ASC',
      property: 'name'
    },{
      direction: 'DESC',
      property: 'createtime'
    }
  ]
}

后端收到jsospringn后再反序列化生成一个Sortajaxat66.Order数组,再Sortajax参数.by(orders); 即可,如

PageRequest.of(page, pagesize, Sort.by(orders));

大概就这样,如果对你有用,请采纳

var data = {
    page:params.offset/params.limit,
    size: params.limit,//默认是10
    sort: ['sort,asc', 'id,desc']//多字段排序
};