什么是用于?</form:select>的spring标签中的<form:select path =“”>

时间:2014-04-04 10:34:48

标签: java spring java-ee spring-mvc

有人可以告诉我,我需要在<form:select>路径属性中指定什么以及它用于什么?实际上我需要了解下拉列表中所选项目的值是如何传递给控制器​​的?

1 个答案:

答案 0 :(得分:32)

假设您有模型(例如Dog),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属性为select,因为我不希望用户输入他想要的品种,我希望他从列表中选择(在这种情况下为allBreeds,控制器将传递给视图)。

<form:select>我使用path告诉spring,select必须绑定到breed模型的Dog

我还使用了<form:options>来填充所有可用于breed属性的选项。

<form:select>很聪明,如果它正在处理填充的模型(即从数据库中获取Dog或使用默认品种值) - 它会自动选择&# 34;右&#34;列表中的选项。

在这种情况下,控制器看起来与此类似:

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

我希望我的回答能给你一个大致的想法。