Closed IliyanGeorgiev02 closed 3 months ago
:rocket: Успешно и приятно програмиране! :rocket:
Здравей, доколкото разбирам, проблемът/въпросът е че формите за AddReview
за всеки един филм са празни. Нека проследим какво се случва преди попълването им и да разберем на какво се дължипроблема.
В контролера за сърч (@PostMapping("/search")
) имаме добавяне на едно празно DTO:
session.setAttribute("movieData", new MovieFullInfoDto());
След това, в ListOfMovies
добавяме празното DTO в модела.
model.addAttribute("movieData", movieData);
За всеки един филм използваме едно и също празно DTO (movieData
) за да попълним ревю формата:
<form th:action="@{/AddReview}" th:object="${movieData}" th:method="post">
<input type="hidden" th:field="*{title}" th:value="${movie.title}"/>
<input type="hidden" th:field="*{year}" th:value="${movie.year}"/>
<button id="addReviewBtn" type="submit">Add review</button>
</form>
Крайният резултат е една кажи речи една и съща празна форма :-)
<form action="/AddReview" method="post"><
<input type="hidden" value="" id="title" name="title">
<input type="hidden" value="" id="year" name="year">
<button id="addReviewBtn" type="submit">Add review</button>
</form>
Опитай, например, нещо толкова просто като:
<form th:action="@{/AddReview}" th:method="post">
<input type="hidden" name="title" th:value="${movie.title}"/>
<input type="hidden" name="year" th:value="${movie.year}"/>
<button id="addReviewBtn" type="submit">Add review</button>
</form>
И ще получиш пълна форма, която ще може да се submit-не. Нещо като:
<form action="/AddReview" method="post">
...
<input type="hidden" name="title" value="Beta Test">
<input type="hidden" name="year" value="2016">
<button id="addReviewBtn" type="submit">Add review</button>
</form>
Поздрави, Л.
https://github.com/IliyanGeorgiev02/JavaWebFinalProject Здравейте, проекта ми представлява социална мрежа в която потребителите могат да споделят мненията си за различни филми и да създават списъци с филми по дадена тематика. За да достъпвам данни за филмите използвам OMDB API с който при въвеждане на дума в търсачката визуализира всички филми със съответната дума в зглавието си. За да се осъществи това използвам search метода в Omdb контролера и връща правилно данните за съответстващите филми в страницата ListOfMovies. Проблема идва когато се опитам да ги добавя в даден списък или да направя ревю, защото данните излизат като null в другите view-та. Данните за всеки филм в ListOfMovies се добавят в отделен form елемент с коректно поставени th:field стойности. Пробвах по различни начини да поставя th:field, th:value, id, name на елементите във формите като първо ги поставях директно на таговете, които визуализират информацията и после на скрити input полета. Също така проверих и dto-тата и те също са коректно създадени. Не знам на какво се дължи проблема и ще съм Ви много благодарен за съвет.