JAVA问题随笔

JAVA问题随笔-Swagger请求Pageable传参问题

分页查询org.springframework.data.domain 的Pageable参数

在后端使用Pageable进行分页插查询的时候,发现无论怎么传值,后端都是查询第一页,查20条(pageable的默认参数)。
扒拉了一下pageable的源码,找到了原因。
后台集成了swagger,供前台查阅传参和测试。当有分页接口的时候,在swagger看到的参数是这样的:
参数说明
这是swagger解析后展示的内容,单传参并不生效,然后查看pageable类发现

/**
 * Returns the page to be returned.
 *
 * @return the page to be returned.
 */
int getPageNumber();

/**
 * Returns the number of items to be returned.
 *
 * @return the number of items of that page
 */
int getPageSize();

这样的话swagger解析为pageSize和pageNumber到是没有什么问题,但是方法的实现类:

/*
 * (non-Javadoc)
 * @see org.springframework.data.domain.Pageable#getPageSize()
 */
public int getPageSize() {
	return size;
}

/*
 * (non-Javadoc)
 * @see org.springframework.data.domain.Pageable#getPageNumber()
 */
public int getPageNumber() {
	return page;
}

嗯?黑人问号???返回的是page和size,我们看看他的实现类的字段:

public abstract class AbstractPageRequest implements Pageable, Serializable {

	private static final long serialVersionUID = 1232825578694716871L;

	private final int page;
	private final int size;

	/**
	 * Creates a new {@link AbstractPageRequest}. Pages are zero indexed, thus providing 0 for {@code page} will return
	 * the first page.
	 *
	 * @param page must not be less than zero.
	 * @param size must not be less than one.
	 */
	public AbstractPageRequest(int page, int size) {

		if (page < 0) {
			throw new IllegalArgumentException("Page index must not be less than zero!");
		}

		if (size < 1) {
			throw new IllegalArgumentException("Page size must not be less than one!");
		}

		this.page = page;
		this.size = size;
	}
}

嗯,好吧,他注入的是page和size,不是pageNumber和pageSize。前台传入page和size就行了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值