Как отправить необязательные параметры из angular и перехватить их в Java Controller? - PullRequest
2 голосов
/ 29 марта 2019

Я пытаюсь отправить параметры поиска в Spring Controller, но продолжаю получать 400 неверных запросов.Я попытался @RequestParam("personalNumber")String personalNumber, но он все еще не работает, так что теперь я пытаюсь получить упаковщик, можете ли вы предложить, как отправить информацию об оболочке в контроллер Java?(У Wrapper есть экземпляры других классов)

AngularJs

angular.extend($scope, {
    obj:{
        personalNumber:"",
        firstName:"",
        lastName:"",
        dateFrom:"",
        dateTo:""
    },

    loadCarLoan: urls.BASE_API + "user/getOnlineApplicationList",
    carLoanList:[

    ],

});


$scope.getCarLoan =  function () {
    $(".loader").show();
    console.log("In the angular");
    $http.post($scope.loadCarLoan + $.param($scope.obj))
      .success(function (response) {
        console.log(response);
        if(response.success){
            $scope.carLoanList = response;
        }
        $(".loader").hide();
    }).error(function () {
        $(".loader").hide();
        $scope.carLoanList = [];
    })
};

$scope.filter = function () {
    $scope.getCarLoan();
};

Контроллер Java:

@RequestMapping(value = "user/getOnlineApplicationList", produces = MediaType.APPLICATION_JSON_UTF8_VALUE, method = RequestMethod.POST)
public @ResponseBody String getOnlineApplicationList(HttpSession session,
                                                     @RequestBody OnlineApplicationListWrapper wrapper) {

    System.out.println("In the Controller Java");

    HashMap<String, Object> jsonMap = new HashMap<>();

    Car car = wrapper.getCar();
    Loan loan = wrapper.getLoan();
    CustPaymentPlan cpp = wrapper.getCpp();
    NaturalPerson np = wrapper.getPerson();

    jsonMap.put("success", "true");
    jsonMap.put("car", car);
    jsonMap.put("loan", loan);
    jsonMap.put("cpp", cpp);
    jsonMap.put("np", np);

    System.out.println(wrapper.getCar().toString());
    System.out.println(wrapper.getLoan().toString());
    System.out.println(wrapper.getCpp().toString());
    System.out.println(wrapper.getPerson().toString());
    System.out.println("========");
    System.out.println(gson.toJson(jsonMap));

    return gson.toJson(jsonMap);

}

1 Ответ

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

Вам нужно изменить:

@RequestParam("personalNumber") String personalNumber

Кому:

@RequestParam(value = "personalNumber", required = false) String personalNumber

required = false указывает пружине, что параметр может быть необязательным.

Нет необходимости создавать обертку

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