2014-04-04 10 views

Odpowiedz

25

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.