Spring - Edytowanie wielu obiektów na jednej formatce

0

Witam. Zastanawiam się czy możliwe jest edytowanie wielu obiektów w jednej formatce html i przesłanie tych wszystkich obiektów po wciśnięciu jakiegoś przycisku do odpowiedniej metody w javie.
Powiedzmy że mam taki fragment pliku jsp:

<form:form action="odbiorca.htm" method="POST" commandName="klient">
            
            <form:input path="imie"/><br>
            <form:input path="nazwisko"/><br>
            <form:input path="nazwa"/><br>
            <form:input path="ulica"/><br>
            
            
            <input type="submit" value="Submit"/>
        </form:form>

Problem plega na tym, że pola imię, nazwisko, nazwa należą do tego obiektu "klient" (typu Klient), ale ulica należy do innego obiektu (typu Adres), który chciałbym tutaj jednocześnie obsłużyć. Potem chciałbym przesłać oba te obiekty: czyli klient i adres do metody w javie, gdzie mógłbym jakoś je odebrać, np. w ten sposób:

@RequestMapping(value = "/odbiorca", method = RequestMethod.POST)
    public ModelAndView wypelnijOdbiorce(KlientNiezarejestrowany klient, Adres adres)
    {
        System.out.println(klient);
System.out.println(adres);
...
return costam;
}

Niestety na razie udaje mi się przesłać tylko obiekt Klient, jeśli próbuję stworzyć metodę z dwoma parametrami tego typu, wyskakuje błąd.

0

Czy między obiektem klient i adres jest jakaś zależność? Np. w klient jest klucz obcy do tabeli adres? Wtedy nie byłoby problemu wystarczyłoby stworzyć relacje w klasach encyjnych i można się odwoływać potem np. tak:

klient.adres.ulica

.
Możesz też stworzyć obiekt typu DTO, który będzie przesyłał dwie klasy np. coś takiego:

class ClientDTO {
     Client client;
     Address address;
}

i przesyłać taki obiekt zawierający obie klasy.

0

W sumie też mi przyszły te sposoby do głowy, ale myślałem, że powinien być jakiś prosty sposób, żeby przesyłać wiele obiektów nawet jeśli nie są powiązane. No nic, w takim razie dzięki.

0

Da się to zrobić ale wtedy nie podajesz commandName w formie. Nie wiem jak dokładnie w JSTL ale FTL na przykład pozwala po prostu na podawanie w formularzu path na zasadzie "obiekt.pole".

0

Możesz to zrobić w ten sposób:
http://stackoverflow.com/a/16713488

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