RedirectView из Spring MVC не работает - PullRequest
1 голос
/ 02 февраля 2020

Я думаю, что ошибка возникла из-за ulr, введенного в параметре RedirectView, но я пробовал другие URL и не могу заставить его работать.

Это структура моего проекта:

Project Structure

И это метод get из Spring MVC в пакете контроллера

@GetMapping("/planetForm")
@ResponseBody
public RedirectView toPlanetForm(Model model, @RequestParam(value = "idPlanet", required = false) String idPlanet) {
    if (idPlanet != null){
        Planet planet = planetService.getById(Integer.parseInt(idPlanet));
        model.addAttribute("planet", planet);
    }
    List<Satellite> satellites = satelliteService.findAll();
    model.addAttribute("satellites", satellites);
    return new RedirectView("./addPlanet");
}

Как видите, я пытаюсь сделать RedirectView для JSP называется addPl anet. jsp. Я также попробовал этот URL (среди прочего): "../webapp/WEB-INF/jsp/addPlanet.jsp", я убежден, что это глупость ладьи ie, но я не вижу ошибки

Я также пытался создать другой сервлет и получить нужный мне объект через @ModelAtribute, но объект, добавленный в первый сервлет, теряется в процессе, это код:

@GetMapping("/updatePlanet")
@ResponseBody
String update(Model model, @ModelAttribute("planet") Planet planet){
    model.addAttribute("planet",planet);
    return "addPlanet";
}

Этот wat отправляет пользователя на addPlanet.jstl , но объект, полученный этим методом, является объектом, только что созданным конструктором с атрибутами со значением null или 0

1 Ответ

0 голосов
/ 02 февраля 2020

Наконец-то я нашел решение, вот оно:

@GetMapping("/planetForm/{idPlanet}")
public String toPlanetForm(Model model, @PathVariable(value = "idPlanet", required = false) String idPlanet) {
    if (idPlanet != null){
        Planet planet = planetService.getById(Integer.parseInt(idPlanet));
        model.addAttribute("planet", planet);
    }
    List<Satellite> satellites = satelliteService.findAll();
    model.addAttribute("satellites", satellites);
    return "addPlanet";
}

Как видите, мне пришлось изменить @GetMapping для нового URL, теперь функция возвращает строку, которая является именем JSP без расширения. В дополнение к параметру функции @RequestParam мне пришлось изменить его на @PathVariable, значение которого совпадает с выражением усов @GetMapping

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