2014-04-04 36 views

回答

25

假設你有一個模型(狗爲例),一個Dog各項屬性:

年齡
品種
如果你想作一個簡單的形式加入

/編輯狗,你會使用的東西,看起來像這樣:

<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> 

正如你所看到的,我選擇了breed屬性爲b因爲我不希望用戶輸入他想要什麼品種,我希望他從列表(在這種情況下,allBreeds,其中控制器將傳遞到視圖)中選擇。

<form:select>我用path告訴彈簧選擇具有綁定到Dog模型的breed

我也使用<form:options>來填充選項,並提供breed屬性的所有可用選項。

<form:select>很聰明,如果它正在使用填充模型(即從數據庫中提取的Dog或默認品種值) - 它會自動從列表中選擇「正確」選項。

在這種情況下,控制器將類似於此:

@RequestMapping(value="/saveDog") 
public String saveDog(@ModelAttribute("myDog") Dog dogFromForm){ 
    //dogFromForm.getBreed() will give you the selected breed from the <form:select 
... 
//do stuff 
... 
} 

我希望我的回答給你一個大致的瞭解。