我有这样的情况
@Autowired
private CustomerRepository repo;
@RequestMapping("/")
public Page<Customer> getDocuments(@Qualifier("bar") Pageable pageable,
@Qualifier("foo")Pageable pageable2)
{
return repo.findAll(pageable,pageable2.getOffset(), pageable2.getPageSize());
}
但效果不佳。我的问题是,我如何区分参数值。
为了实现上述场景,我不得不将我的方法更改为:
@RequestMapping("/")
public Page<Customer> getDocuments(Pageable pageable,
@RequestParam(value="from", defaultValue="0") int offSet,
@RequestParam(value="length", defaultValue="3") int length)
{
return repo.findAll(pageable, offSet, length);
}
答案 0 :(得分:3)
最后,我找到了答案。我所做的是绝对正确的,但我在URL中传递了错误的参数。
简而言之,如果您传递两个Pageable,则必须有一个@Qualifier,您需要相应地设置您的请求参数。
我之前在网址http://localhost:8080/?page=0&size=2&page=0&size=3
中传递的内容
正确的网址为http://localhost:8080/?bar_page=0&bar_size=2&foo_page=0&foo_size=3
答案 1 :(得分:0)
我认为将Spring bean作为参数传递给rest资源是错误的想法。如果需要从Bean访问这些值,那么它应该在资源内部访问,假设bean已经初始化。
`@Autowired 私人CustomerRepository仓库;
@Autowired
@Qualifier("bar")
Pageable pageable;
@Autowired
@Qualifier("foo")
Pageable pageable2;
@RequestMapping("/")
public Page<Customer> getDocuments(){
return repo.findAll(pageable,pageable2.getOffset(),pageable2.getPageSize());
}`