получение нулевого идентификатора для бэк-энда через URL в контроллере остальных - PullRequest
0 голосов
/ 05 марта 2019

Я получаю идентификатор Null для back-end, который является передачей параметров из front-end

    this.overAllSummery = function(offset,limit,search,colName,order,id){

    var url = 'api/dashboard/summary/'

        if(offset!= undefined){
            url=(url.indexOf("?") > -1)?url+"&offset="+offset:url+"?offset="+offset;
        }
        if(limit != undefined){
            url=(url.indexOf("?") > -1)?url+"&limit="+limit:url+"?limit="+limit;
        }
        if(search!=undefined && search!=""){
            url=(url.indexOf("?") > -1)?url+"&search="+search:url+"?search="+search;
        }
        if(colName != undefined){
            url=(url.indexOf("?") > -1)?url+"&colName="+colName:url+"?colName="+colName;
        }
        if(order != undefined){
            url=(url.indexOf("?") > -1)?url+"&order="+order:url+"?order="+order;

        }
        if(id != undefined){
            url=(url.indexOf("?") > -1)?url+"&id ="+id:url+"?id ="+id;
        }
        alert(id);
        var promise = $http({
            method : 'GET',
            url : url,
            headers : {
                'Content-Type' : 'application/json'
            },
            cache : false
        }).then(function (response) {
            return response;
        });
        return promise;     
    };

Все выше - это front-end сервис, использующий AngularJS и передающий URL для вызова back-end, как яПередавая различные параметры, я получаю все эти данные на сервер, кроме ID, и на основе идентификатора мне нужно выбрать записи из БД.

    @RequestMapping(value = "/summary", method = RequestMethod.GET, produces="application/json")
public ResponseEntity<List<OverAllSummery>> overAllSummery(HttpServletRequest request,@RequestParam(value="offset",required=false) Integer offset,@RequestParam(value="limit",required=false) Integer limit,
@RequestParam(value="search",required=false) String search,@RequestParam(value="colName",required=false) String colName,@RequestParam(value="order",required=false) String order,
@RequestParam(value="id",required=false) Long id){

try {

    return new ResponseEntity<List<OverAllSummery>>(DashbordService.overAllSummery(offset,limit,search,colName,order,id), HttpStatus.OK);
} catch (Exception exception) {
    logger.error("Error retriving all categories", exception);
    return new ResponseEntity<List<OverAllSummery>>(HttpStatus.INTERNAL_SERVER_ERROR);
}

Выше используется контроллер остальных, который я использую, вызов передается наконец в режиме отладки, но ID становится пустым, и я получаю 404 в консоли переднего плана.

enter image description here

Вы можете увидеть выше после добавления URL вalert, где ID = 1, но после вызова, идущего на сервер, этот идентификатор становится пустым

enter image description here

, вы можете увидеть выше этот идентификатор в API

Ответы [ 3 ]

1 голос
/ 05 марта 2019

Можете ли вы проверить после удаления этого дополнительного пробела из вашего URL. У URL не должно быть пробелов.

Remove this extra space

0 голосов
/ 05 марта 2019

Ошибка 404 в HTTP определенно означает, что сервер (серверная часть) не знает URL, к которому вы пытаетесь обратиться.Внутренняя ошибка сервера, которая генерируется блоком catch, - это HTTP 500, поэтому серверная часть не выдает исключение.Итак, первое, что нужно проверить, это какой URL вы пытаетесь получить на самом деле.Кстати, попробуйте использовать «/ api / dashboard / summary» вместо того, что сейчас используется в front-end.

0 голосов
/ 05 марта 2019

@RequestMapping(value = "dashboard/summary" ...) вы не добавили id в качестве параметра в requestMapping

add {id} @RequestMapping(value = "dashboard/summary/{id}" ...)

api, который вы называете dashboard/summary/1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...