Я не могу использовать свое веб-приложение для удаления автомобиля из списка - PullRequest
0 голосов
/ 21 октября 2019

У кого-нибудь есть идея, что происходит? Почему я не могу удалить свой автомобиль?

На веб-странице возникла следующая ошибка: произошла непредвиденная ошибка (тип = неверный запрос, статус = 400). Условия параметра "idCar" не выполнены для фактических параметров запроса:

Этот код работает, если я напишу следующий адрес в строке веб-браузера: http://localhost:8080/cars-web/deleteCar?idCar=2"

Это код из CarGui с надписью@ Controller

@GetMapping(value = "/cars-web/deleteCar", params = "idCar")
public String deleteCar(@RequestParam long idCar) {
    carService.deleteCar(idCar);
    return "redirect:/cars-web";
}

Это код моего автосервиса

@Override
public boolean deleteCar(long id) {
    Optional<Car> found = carList.stream().filter(car -> car.getCarId()== id).findFirst();

        if(found.isPresent()) {
            carList.remove(found.get());
            return true;
        } else {
            return false;
        }
}

А вот мой код с моей веб-страницы:

<form th:action="@{/cars-web/deleteCar}" th:object="${someId}" method="get">
<p>Id:<select>
    <option th:each="ids : ${readId2}"
            th:value="${ids}" th:text="${ids}"></option>
</select></p>
<p><input type="submit" value="Delete Car From List"></p>

Дополнительно моя модель

@GetMapping("/cars-web")
public String getCars(Model model) {
    model.addAttribute("carList", carService.getAllCars());
    model.addAttribute("readId", carService.getListId());
    model.addAttribute("readId2", carService.getListId());
    model.addAttribute("addCar", new Car());
    model.addAttribute("color", carService.getAllCarColors());
    model.addAttribute("someId", "");
    return "cars-web";
}

1 Ответ

0 голосов
/ 22 октября 2019

Изменить:

public String deleteCar(@RequestParam long idCar) {

На:

public String deleteCar(@PathVariable("idCar") long idCar) {

и изменить:

@GetMapping(value = "/cars-web/deleteCar", params = "idCar")

на:

@GetMapping(value = "/cars-web/{idCar}")

Вы можетеПодробнее о различиях между PathVariable и RequestParam ЗДЕСЬ.

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