-3

Все-все-все кто знаком со Spring и Thymeleaf

Доброго времени суток! Есть учебный проект по spring и thymeleaf. Проблема состоит вот в этих двух строчках на странице result.html

<p th:text="'id: ' + ${greeting.id}" />

<p th:text="'content: ' + ${greeting.content}" />


при вызове метода POST из формы, эти два подлеца не передают полученные параметры (в консоле 0 и null), а получают они из формы (код файлов будет ниже). Может ли кто-нибудь подсказать в чем может быть проблема? Способы со стека идентичны коду, то есть других вариантов нет. Грешу на контроллер, но я даже не знаю что можно туда добавить

дабы экономить место и время вот ссылка на урок https://spring.io/guides/gs/handling-form-submission/


p.s. предвижу возможные "насмешки" : в: копи паст отменили что ли?! о: нет, полное клонирование проекта, копирование кода и т.п. не помогли; в: а как же гугл гыгыгы о: google дает аналогичные варианты использование Thymeleaf

Дубликаты не найдены

0

thymeleaf только шаблонизатор, он отвечает за вывод данных. я не беру в расчёт синтаксис - проверить это может любой здравомыслящий человек. по всей видимости проблема в данных переданных из контроллера во ViewModel, а, возможно, и в данных полученных либо десериализованных в контроллер (частенько начинающие неправильно настраивают получение данных формы в контроллере), либо вообще проблема с формой и отправляемыми данными.
т.о. надо пробежаться по всей цепочке по которой передавались данные и найти где они потерялись.

раскрыть ветку 3
0

контроллер там на удивление простой, как они сами его называют


@Controller

public class GreetingController {


@GetMapping("/greeting")


public String greetingForm(Model model) {


model.addAttribute("greeting", new Greeting());


return "greeting";


}



@PostMapping("/greeting")


public String greetingSubmit(@ModelAttribute Greeting greeting) {


return "result";


}

}


взяли объект с гет и в пост страницу... хотя, мысля сейчас пришла, а может он со страницы их просто не получает? пойду бреков наставлю)

раскрыть ветку 2
0

1. у ModelAttribute надо проставить правильно имя (если оно не совпадёт с именем модели в форме, то спринг смапит в другой объект)
2. надо проверить что данные уходят со страницы (для этого используем дебагер встроенный в браузер)
на сколько я помню (давно не занимался сабмитом форм =), не помню этого нюанса), там именование аттрибутов в таком виде идёт - {имяМоделАттрибута}.{имяПроперти}
т.е. в данном случае, скорее всего, в методе принимающем пост в ModelAttribute надо указать имя "greating" (@ModelAttribute("greating"))
если данные уходят корректно, тогда ставим бряку и проверяем что пришло в контроллер, если поля объекта пустые, то Spring не смог замапить и надо проверять именование.

раскрыть ветку 1
0
Ставь бряки, смотри какие данные приходят, какие уходят в шаблонизатор. Если копипаста не помогает, то скорее всего проблема в окружении.
раскрыть ветку 1
-1

проект на maven, pom.xml зависимости в нем идентичны примеру, idea не ругается ни на что=( но все равно спасибо за внимание твое к моему вопросу

Похожие посты
Похожие посты закончились. Возможно, вас заинтересуют другие посты по тегам: