booratina
@booratina

Получить аттрибут с Spring mergeAttributes для Thymeleaf?

Делаю вылидацию!
Без //return "/main"; в POST методе не получаеться вывести ошибку под input!
Во freemarker работает!
При использовании thymeleaf нужно делать return "/main" но тогда не отображаться то что возвращает GET

THYMELEAF
<div th:class="${message.text} ? 'collapse show' : 'collapse' " id="collapseExample">
        <div class="form-group mt-3">
            <form th:action="@{/main}" method="post" enctype="multipart/form-data" th:object="${message}" >
                <div class="form-group">
                    <input type="text" name="tag" placeholder="tag" class="form-control">
                </div>
                <div class="form-group">
                    <input type="text" name="text" placeholder="please add message"
                           th:class="${message.text} ? 'form-control is-invalid' : 'form-control ' "
                           th:field="*{text}"
                           id="myrequired"
                    >
                    <!-- <span class="invalid-feedback" th:if="${#fields.hasErrors('text')}" th:errors="*{text}"></span>-->
                    <span th:text="${textError}"></span>
                </div>


@GetMapping("/main")
    public String main(
            Message message,
            @RequestParam(required = false, defaultValue = "") String filter,
            Model model) {
        Iterable<Message> messages = messagesRepo.findAll();

        if (filter != null && !filter.isEmpty()) {
            messages = messagesRepo.findByTag(filter);
        } else {
            messages = messagesRepo.findAll();
        }

        model.addAttribute("messages", messages);
        model.addAttribute( "message", message);
        model.addAttribute("filter", filter);
        return "main";
    }


@PostMapping("/main")
    public String addMessage(
            @AuthenticationPrincipal User user,
            @Valid Message message,
            BindingResult bindingResult,
            Model model,
            @RequestParam("file") MultipartFile file) throws IOException {
        message.setAuthor(user);

        if (bindingResult.hasErrors()) {
            Map<String, String> errorsMap = ControllerUtil.getErrors(bindingResult);
            model.addAttribute( "message", message);
            model.mergeAttributes(errorsMap); //todo mergeAttributes не работает Validation из-за mergeAttributes

            //return "/main";

        } else {
..........................................
        return "redirect:/main";


5dd2f30caff16070563271.png
5dd2f314d8064495866050.png
  • Вопрос задан
  • 261 просмотр
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы