• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Spring Boot - kontroler formularza zwraca same NULLe

0 głosów
610 wizyt
pytanie zadane 15 stycznia 2017 w Java przez Ola Kalisz Początkujący (320 p.)

Mam problem z formularzem do aktualizacji danych użytkownika. Kontroler zwraca same nulle, tak jakby nie docierały dane z formularza. 

Mam stworzony model z getterami i setterami dla Usera http://pastebin.com/wumXhMAX
Formularz pobiera dane z kontrolera, ale niestety po kliknięciu w submit kontroler odpowiedzialny za przechwycenie danych zwraca same nulle : http://pastebin.com/eqAgHCnS

Kontroler: http://pastebin.com/yfDYQSWk

Dziękuję za wszystkie wskazówki! Pozdrawiam

komentarz 15 stycznia 2017 przez Mateusz51 Nałogowiec (28,180 p.)
W kodzie jsp nie powinnaś mieć przy inputach np th:field="email" ??
Nie używałem jakoś thymeleaf szczególnie wiec nie musi być to.
komentarz 15 stycznia 2017 przez Ola Kalisz Początkujący (320 p.)
Nie muszę, przy innych formularzach nie korzystam z th:field i działają bez problemu. Tutaj jedynie mam th:value, które mi prawidłowo pobiera dane użytkownika z bazy. Jednak gdy kliknę w submit, niestety nie przekazuje danych dalej (mimo, że formularz wygląda identycznie jak np. dodwania nowego produktu - gdzie wszystko działa )
komentarz 15 stycznia 2017 przez Mateusz51 Nałogowiec (28,180 p.)
No to w takim razie nie mam pomysłu. Ja używam głównie Spring form JSP tag library. I tam gdzy chce "podczepić" inputa do pewnego atrybutu to musze go dokładnie wskazać. Nawet nie musze używać atrybutu value bo gdy dodam do modelu obiekt z wypełnionymi danymi to fromatka sama się uzupełnia. Dlatego przyszło mi do głowy.

Reszta jak patrze wygląda dosyć standardowo i nie widze co może być źle. Jak znajdziesz to pochwal się. Też jestem ciekawy

2 odpowiedzi

0 głosów
odpowiedź 15 stycznia 2017 przez Wojciech Cies Obywatel (1,140 p.)

W formularzu html spróbuj bez "user." w definicji pól formularza. Czyli zamiast

<input type="text" id="fullName" th:value="${user.fullName}" class="form-control" />

daj

<input type="text" id="fullName" th:value="${fullName}" class="form-control" />

Poza tym w klasie User brakować Ci możę adnotacji ModelAttribute: 

@ModelAttribute(value = "user")

 

komentarz 15 stycznia 2017 przez Ola Kalisz Początkujący (320 p.)
Dziękuję za odpowiedź Wojtku

Niestety przy usunięciu "user" wciąż zwraca nulla.

To @ModelAttribute(value = "user")  nie podaje się w metodzie odpowiedzialnej za pobieranie danych z formularza (w formularzu ustawiony obiekt - na user)?

W modelu User też powinien być @modelAttribute?

W innych modelach w których jedynie dodaje dane z formularzy do bazy nie używałam @modelAttribute i działały :(
komentarz 16 stycznia 2017 przez Wojciech Cies Obywatel (1,140 p.)
Masz może ten projekt w jakimś github'ie czy czymś? Tak, żeby można to przetestować w całości, nie gdybać na podstawie wycinków?
0 głosów
odpowiedź 4 lutego 2017 przez Aress Mądrala (6,410 p.)
ja zamiast th:value uzywam th:field="*{login}" i dziala

Podobne pytania

0 głosów
1 odpowiedź 572 wizyt
0 głosów
2 odpowiedzi 500 wizyt
pytanie zadane 28 sierpnia 2020 w Java przez nieznajomy121 Nowicjusz (200 p.)
+1 głos
0 odpowiedzi 1,198 wizyt

93,695 zapytań

142,615 odpowiedzi

323,225 komentarzy

63,226 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...