Thymeleaf + jQuery - problem z eventem

0

Cześć,

od kilku dni nie mogę poradzić sobie z pewnym problemem. Szukałem pomocy w internecie w różnych miejscach, ale finalnie nic to nie zmieniło. Nie twierdzę, że to przez błędne rozwiązania, a być może po prostu nie umiałem tego poprawnie wykorzystać. W każdym razie zwracam się do Was.

Otóż, przerabiam moją aplikację z JSP na Thymeleafa. Wszystko szło ładnie, pięknie, aż do momentu, gdy dotarłem do eventu w jQuery. Ów event działa następująco:

  1. w tabeli generowane są wiersze z danymi, a w ostatniej komórce każdego wiersza znajduje się checkbox
  2. po wybraniu do maksymalnie 3 checkboxów, blokowana jest możliwość zaznaczanie kolejnych
  3. dodatkowo w nagłówku ostatniej kolumny tabeli następuje zamiana tekstu "Porównaj" na formularz, który przenosi użytkownika do kolejnej akcji w kontrolerze, przesyłając id wybranych wierszy tabeli

I tu jest problem, gdyż ogólnie event się wykonuje i w konsoli, podglądając kod, widać, że przekazuje poprawne id, ale:

  • po pierwsze nie przenosi do właściwej akcji, tylko wykonuje się w tym samym miejscu,
  • a po drugie przekazuje nulla

Poniżej fragmenty kodu:

  1. wiersz w html, który ma być zamieniany na formularz:
<th class="th-sticky" style="vertical-align: middle; width: 20vmax" id="th-compare">Porównaj (max. 3)</th>
  1. fragment odu jquery, odpowiedzialny za wygenerowanie formularza:
const thCompare = $('#th-compare');
thCompare.html('<form th:action="@{/action}" method="post">' +
            '  <input type="hidden" name="id1" th:field="1">\n' +
            '  <input type="hidden" name="id2" th:field="2">\n' +
            '  <input type="hidden" name="id3" th:field="3">\n' +
            '</form>');

Będę wdzięczny za sugestie.

1

No przecież te tagi thymeleafowe są rozwiązywane na serwerze, a w przeglądarce masz HTML :)

0

No ok, ale czy mogę prosić o przykład, jak to powinno poprawnie wyglądać? Uczę się dopiero, więc nie wszystko jest tak oczywiste, a jak już wspomniałem na początku, nie znalazłem rozwiązania, choć szukam od kilku dni..

0
luke83 napisał(a):

Otóż, przerabiam moją aplikację z JSP na Thymeleafa. Wszystko szło ładnie, pięknie, aż do momentu, gdy dotarłem do eventu w jQuery.

Czy ja śnię? Zrobiłeś ją w technologii, w której nie chciałbyś pracować (JSP) i jak już się zdecydowałeś na przepisanie to wybrałeś thymeleafa? XD
Lubisz sprawiać sobie ból i cierpienie? O pomyśle używania jQuery nie wspomnę...

Przejrzyj ostatnie tematy związany z thymeleafem, każdy z nich to problemy związane z tagami itp.
Może gdybyś pisał to kilka lat temu to jakoś bym to zniósł ale dzisiaj?
W dobie gdzie angularową apkę (na potrzeby cruda) robi się tak łatwo i szybko? (wspominam o angularze, ze względu na statyczne typowanie)

0

No cóż, takiej technologii uczyli nas na kursie ;) Po jego zakończeniu staram się rozwijać na własną rękę to, o czym zostało na nim wspomniane. Dla ludzi z branży czy też "siedzących" w programowaniu od lat, może się wydawać śmieszne to, o czym piszę, ale zakładam, że nikt nie urodził się ze znajomością podstaw programowania oraz najnowszych rozwiązań dostępnych na rynku :)

Reasumując, na podstawie komentarzy wnioskuję, że to, co już stworzyłem, powinienem wyrzucić do kosza i zacząć uczyć się nowego języka ;)

2

Nic takiego nie miałem na myśli. Ma być Thymeleaf - spoko, nauczysz się kombinować i zobaczysz która warstwa za co odpowiada. To pouczające. Wcale nie każdy musi iść na Angulara itp. To trochę jakbyś nie dogadywał się z żoną i jedynym rozwiązaniem byłaby zmiana życiowej partnerki.

Wracając - dlaczego nie możesz tego warunku zawrzeć 100% w Thymeleaf, tylko coś doklejasz JS-em?

0

Polece klasykiem. Angular/React. Nie ma co się bawić w templatki. (Ja sam wole preferuje angulara)

0
Charles_Ray napisał(a):

Nic takiego nie miałem na myśli. Ma być Thymeleaf - spoko, nauczysz się kombinować i zobaczysz która warstwa za co odpowiada. To pouczające. Wcale nie każdy musi iść na Angulara itp. To trochę jakbyś nie dogadywał się z żoną i jedynym rozwiązaniem byłaby zmiana życiowej partnerki.

Wracając - dlaczego nie możesz tego warunku zawrzeć 100% w Thymeleaf, tylko coś doklejasz JS-em?

Ale masz na myśli napisanie warunku w Thymeleafie? W JS mam to dosyć rozbudowane - w zależności od tego, które checkboksy zostaną zaznaczone, takie wartości id zostają przekazane. Nie wklejałem tutaj całego kodu, gdyż skupiłem się tylko na uzyskaniu pomocy w połączeniu JS z Thymeleafem, a konkretnie, aby eventy z JS "dogadały się" z Thymeleafem, bo na razie nie działa poprawnie przekazwyanie parametrów i adresu akcji formularza.

0
luke83 napisał(a):

No cóż, takiej technologii uczyli nas na kursie ;) Po jego zakończeniu staram się rozwijać na własną rękę to, o czym zostało na nim wspomniane. Dla ludzi z branży czy też "siedzących" w programowaniu od lat, może się wydawać śmieszne to, o czym piszę, ale zakładam, że nikt nie urodził się ze znajomością podstaw programowania oraz najnowszych rozwiązań dostępnych na rynku :)

Reasumując, na podstawie komentarzy wnioskuję, że to, co już stworzyłem, powinienem wyrzucić do kosza i zacząć uczyć się nowego języka ;)

Kurs miałem z backendu - jsp stosowaliśmy tylko do prezentacji warstwy widoku, aby zobaczyć wyniki kodu. O Thymelefie było wspomniane w kontekście Springa, a więc pomyślałem, że sam ogarnę. Jednak jak widać po odpowiedziach do mojego postu (w zasadzie żadnej konkretnej wskazówki :) ), nie tylko ja mam z tym problem..

0

Reasumując, zabieram się za naukę Reacta - chyba tak będzie szybciej ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1