luchob/softuni-feb2023

проблем с попълването на th:value в reservations/add формата

Closed this issue · 2 comments

Здравей, Лъчо, извинявам се, че може би леко се повтарям, проблемът ми беше, че се чудих как да пренеса данни от /rooms/available/search към /reservations/add с RequestParam и се предават и взимат успешно, но не знам как да бъдат предадени към фронтенда към юзъра, защото th:text излиза под input полето, а th:value не се визуализира. Дали ще може да споделиш начина на предаване, защото аз не го откривам и от интернет. Много благодаря :)
https://github.com/yanamet/HotelAntique

И когато кликна на reserve с грешни данни (празни) ме препраща на правилния url, но се зарежда error page, без локалните грешки.

luchob commented

Здравей :-) Аз си представям нещата доста... как да кажа, по радикално различно :-)))

Така, да си представим че в това (или пък друго)ResetvationDTO имаме from/to полета, както и roomId:

public class ReservationDTO {


    private LocalDate from;
    private LocalDate to;

Имаме и такъв линк:

http://localhost:8080/reservations/add?id=1&from=2023-03-30&to=2023-04-02

Тогава в контролера може да имаме това вместо хиляди RequestParam анотации:

    @GetMapping("/reservations/add")
    public String addReserve(
                             ReservationDTO reservationDTO,
                             Model model)

reservationDTO ще се попълни и от GET параметрите! После, трябва да го добавим в модела, ето така:

        model.addAttribute("reservationDTO", reservationDTO);

Нали вече си го имаш така или иначе в темплейта като th:object.

После вътре става така:

 <input
                            name="checkIn"
                            id="checkIn"
                            th:value="*{from}"
                            th:errorclass="is-invalid"
                            type="date"
                            class="form-control"
                            placeholder="Check in">

И така:

Screenshot 2023-03-30 at 9 24 17

Поздрави,
Л.