web-dev-qa-db-ja.com

Springタグの<form:select path>は何に使用されますか?

誰かが<form:select>パス属性で何を指定する必要があるか、それを何に使用するかを教えてもらえますか?実際に、ドロップダウンから選択したアイテムの値がコントローラーに渡される方法を理解する必要がありますか?

14

モデル(たとえば、犬)があるとすると、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を使用して、selectがbreedモデルのDogにバインドする必要があることをSpringに伝えました。

また、<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
...
}

私の答えがあなたに一般的な考えを与えてくれれば幸いです。

33
Shay Elkayam