Я разрабатываю веб-приложение с весенним загрузочным и угловым Js, я хочу добавить разбивку на страницы в свой интерфейс, но он дает мне ошибку, упомянутую в заголовке: Необязательный параметр int page 'page' присутствует, но не может быть переведен в нулевое значение из-за объявляется как примитивный тип. Подумайте об объявлении его как обертки объектов для соответствующего примитивного типа.
Здесь мой java-контроллер
@RequestMapping(value="/getReports",method=RequestMethod.GET)
public Page<DetailsReport> getTables(int page){
return detailsReportRepository.findAll(new PageRequest(page,5));
}
Здесь мой контроллер Js
$scope.pageCourante=0;
$scope.loadReports=function(){
$http.get("/getReports?page="+$sope.pageCourante)
.success(function(data){
$scope.reports=data;
$scope.pages=new Array(data.totalPages)
});
}
$scope.gotoPage = function(p) {
$scope.pageCourante = p;
$scope.loadReports();
}
И здесь html
<div class="container">
<ul class="nav nav-pills">
<li ng-class ="{active:$index==pageCourante} " class="clickable"
ng-repeat="p in pages track by $index"> <a
ng-click="gotoPage($index)">{{$index}}</a>
</li>
</ul>
</div>
Есть идеи?
Вы забыли разместить аннотацию @RequestParam
@RequestMapping(value="/getReports",method=RequestMethod.GET)
public Page<DetailsReport> getTables(@RequestParam(value = "pageNumber", required = false) int page){
return detailsReportRepository.findAll(new PageRequest(page,5));
}
Вам необходимо использовать аннотацию @RequestParam для привязки параметров запроса к параметру метода в вашем контроллере.