FlashAttributes не в модели после перенаправления - PullRequest
0 голосов
/ 04 мая 2018

У меня есть такой метод контроллера:

@GetMapping("/notations")
public String listAll(Model model) {
    Iterable<PriceNotation> allItems = loadAllNotations();
    model.addAttribute("notations", allItems);
    return "supply/notations";
}

Тогда у меня есть этот метод, который перенаправляет на тот, что выше:

@GetMapping(value = "/notations/delete")
public String delete(@RequestParam(name="id", required=true) Long id, RedirectAttributes redirectAttributes)
{
    try {
        notationRepository.deleteById(id);
    } catch (RuntimeException e) {
        redirectAttributes.addFlashAttribute("message", "delete failed");
    }
    return "redirect:/notations";
}

Когда я ставлю точку останова в первом методе после перенаправления, модель пуста. Хотя документация гласит:

После перенаправления атрибуты flash автоматически добавляются в Модель контроллера, который обслуживает целевой URL.

Также на моей html-странице есть заголовок, в котором должно отображаться сообщение:

<h2 th:text="${message}"></h2>

Также этот заголовок пуст. Чего мне не хватает?

PS, я знаю, что этот вопрос задавался прежде, но не было никакого принятого ответа, и ни одно из предложений не работало для меня.

1 Ответ

0 голосов
/ 04 мая 2018

они не добавляются в модель, поскольку передаются в качестве параметров запроса, таких как example.com?message=abc.

Так что вы можете:

  • доступ к ним в контроллере с помощью @RequestParam и добавление к вашей модели
  • ИЛИ доступ к ним в тимелист с ${#param.message[0]}

В итоге вы должны рассматривать redirectAttributes как параметры запроса в получающем контроллере (listAll).

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