Czy ktoś może mi powiedzieć, co muszę podać w atrybucie ścieżki <form:select>
i do czego jest używany? tak naprawdę muszę zrozumieć, w jaki sposób wartość wybranego elementu z listy rozwijanej jest przekazywana do kontrolera?Co to jest <form: wybierz ścieżkę> w tagu sprężyny?
Odpowiedz
Powiedzmy, że masz model (Dog na przykład), A Dog
ma różne atrybuty:
nazwę
wiek
rasy
jeśli chcesz zrobić prosty formularz dodawania/edycji psa, byłoby użyć czegoś, co wygląda tak:
<form:form action="/saveDog" modelAttribute="myDog">
<form:input path="name"></form:input>
<form:input path="age"></form:input>
<form:select path="breed">
<form:options items="${allBreeds}" itemValue="breedId" itemLabel="breedName" />
</form:select>
</form:form>
jak widać, wybrałem właściwość breed
do b e a select
, ponieważ Nie chcę, aby użytkownik wpisał niezależnie od rasy chce, Chcę go wybrać z listy (allBreeds
w tym przypadku, które kontroler przejdzie do widoku).
W <form:select>
Użyłem path
powiedzieć, że sprężyna wybierz musi wiązać się z breed
modelu Dog
.
Użyłem również <form:options>
, aby wypełnić zaznaczenie wszystkimi opcjami dostępnymi dla atrybutu breed
.
Urządzenie jest bardzo inteligentne i jeśli działa na zapełnionym modelu (tj.
W tym przypadku, sterownik będzie wyglądał podobnie do tego:
@RequestMapping(value="/saveDog")
public String saveDog(@ModelAttribute("myDog") Dog dogFromForm){
//dogFromForm.getBreed() will give you the selected breed from the <form:select
...
//do stuff
...
}
Mam nadzieję, że moja odpowiedź dał ci ogólne pojęcie.