这次在项目开发中要求写Rest风格接口,在调试时发现有个按条件分页查询的接口涉及到多参数传递。因为参数较多,不想使用GET请求避免参数太过繁琐,经过试验,发现可以使用POST请求在后台通过JavaBean来接受所有参数。现在做下记录:
参数实体类:
@Data
public class OrderPageDTO {
/**
*
用户分象
ID
*/
private Long
userId;
/**
*
页号
*/
private int
page
=
1
;
/**
*
每页显示记录数
*/
private int
limit
=
20
;
}
controller层方法(接收):
/**
* @Description:
分页查询积分订单交换列表
* @param orderPageDTO
* @return OrderMessageVO
* @author lfh
*/
@PostMapping(
"/getOrderList")
@PreAuthorize(
"hasAuthority('order-service-order-selectByPage')")
public OrderMessageVO<List<OrderVO>> selectOrderListByPage(OrderPageDTO orderPageDTO){ OrderMessageVO<List<OrderVO>> orderMessageVO =
orderApi.selectOrderListByPage(orderPageDTO);
return orderMessageVO;
}
API层接口:
@PostMapping(
"/getOrderList")
public OrderMessageVO<List<OrderVO>> selectOrderListByPage(
@RequestBody OrderP ageDTO orderPageDTO);
API实现方法:
@Override
public OrderMessageVO<List<OrderVO>> selectOrderListByPage(
@RequestBody OrderPageDTO orderPageDTO){
...
}
测试结果:

注意:
1、controller层方法
接收参数时不用加任何(
@RequestBody..)注解,前台传递的参数只要和
OrderPageDTO 里面的属性名称相同,会自动将所传参数转换封装为
OrderPageDTO。
2、API接口方法和接口实现方法的参数前必须加上@RequestBody注解,否则获取的参数会为空