2014-04-04 35 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 
... 
} 

我希望我的回答给你一个大致的了解。