主页>技术知识>详情

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

villain/2022-02-23/117阅读 /0评论
springboot Pageable排序问题,前台ajax传参,sort属性怎么传递多字段?请各路大神看问题描述。简介:这个博客springmvc 通过 Pageable对象和PageableDefault注解获取分页信息,解决了以url方式传递多个sort排序字段,如下: sort,排序相关的信息,以propert

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

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

sort,排序相关的信息,以property,property(,ASC|DESC)的方式组织,例如sort=firstname&sort=lastname,desc表示在按firstname正序排列基础上按lastname倒序排列。

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

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

解决方法:

看我的 《Netkiller Spring cloud 手札》里面有讲。


没有我想要的

多个字段用数组或集合


哎,石城大海了


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

public Sort(Sort.Order... orders)

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

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

该构造方法允许你可以通过多个Order对象创建一个排序请求

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

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

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

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

后端收到json后再反序列化生成一个Sort.Order数组,再Sort.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']//多字段排序
};
本文用户投稿或网站收集转载,如有侵权请联系本站。