ページネーションのフォールバック状況を定義する ArgumentResolver があります。
public class WebConfig extends WebMvcConfigurerAdapter {
@Override
public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
PageableHandlerMethodArgumentResolver resolver = new PageableHandlerMethodArgumentResolver();
resolver.setFallbackPageable(new PageRequest(0, 5, Direction.DESC, "id"));
argumentResolvers.add(resolver);
}
}
そして、これは私のコントローラーメソッドがどのように見えるかです:
@RequestMapping(RequestMappings.SHOW_ALL_ITEMS)
public String showAllItems(Model model, Pageable pageable) {
PageWrapper<Item> page = new PageWrapper<Item>
(itemService.getAllItems(pageable), RequestMappings.SHOW_ALL_ITEMS);
model.addAttribute("page", page);
return ViewNamesHolder.SHOW_ALL_ITEMS;
}
別のフォールバック状況で別のコントローラー メソッドが必要な場合はどうすればよいですか? 多くの引数リゾルバー オブジェクトを登録できることを知っています。しかし、この場合、コントローラーメソッドで使用するものをどのように定義すればよいでしょうか? :
public class WebConfig extends WebMvcConfigurerAdapter {
@Override
public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
PageableHandlerMethodArgumentResolver resolverWithSizeFive = new PageableHandlerMethodArgumentResolver();
resolverWithSizeFive.setFallbackPageable(new PageRequest(0, 5, Direction.DESC, "id"));
argumentResolvers.add(resolverWithSizeFive);
PageableHandlerMethodArgumentResolver resolverWithSizeTen = new PageableHandlerMethodArgumentResolver();
resolverWithSizeTen.setFallbackPageable(new PageRequest(0, 10, Direction.DESC, "id"));
argumentResolvers.add(resolverWithSizeTen);
}
}