2016-08-21 12 views
0

のドロップダウンリストから文字列の代わりにオブジェクトを取得する方法:は、私は、ドロップダウンリスト以下のいる私のJSPページでSpring MVCの

<form:select path="companies" name="company"> 
<form:options items="${companies}" itemValue="name" itemLabel="name"/> 
</form:select> 

このリストは、当社のオブジェクトのname属性を表示します。値を選択してフォームを送信すると、コントローラはこの属性を受け取ります。

単一の属性ではなくコントローラでこのオブジェクトを受け取る方法を探しています。

+0

オブジェクトを取得するために 'name'を取得した後に –

+0

私はそうすることができますが、私はこのオブジェクトをjspから取得する方法を探しています。 それは可能ですか? – KamilDS

+0

データバインディングを使用できます。 https://www.mkyong.com/spring-mvc/spring-mvc-dropdown-box-example/をご確認ください。 –

答えて

0

まず、私がドロップダウンから提出する値として会社名の代わりに会社IDを持っていることをお勧めします。その名前を説明として表示することもできますが、idを値として送信します。あなたが持っているなら、idは通常あなたの会社のテーブルのプライマリキーです。名前はそれほどユニークではありません。

次に、このIDをバネコントローラメソッドのパラメータとして受け取ると、ドロップダウンのレンダリングとオブジェクトの取得に使用された同じリストへのハンドルが取得されます。春のことは、オブジェクトモデルはデフォルトではリクエストの間だけ持続するため、ドロップダウンのレンダリングに使用したリストは、ユーザーがIDを返すまでに消えてしまいます。最初のリクエストはページのレンダリングに使用され、2番目のリクエストはパラメータの送信です。したがって、このリストを要求より長くメモリに保存したいと思うでしょう。そのリストをセッション内に保持することで、そのリストを長く持続させることができます。 Springは、モデル属性をセッション・レベルで持続させるためのアノテーションを持っています。あなたがそれを削除しない限り、ユーザーがログインしている間は、オブジェクトはセッションに存続することに留意してください。

なぜあなたはオブジェクトを望んでいるのだろうかと思う。多くの場合、idは必要なすべてです。これは、ユーザーの選択肢としてdbに設定して、すべて設定されているためです。しかし、私はあなたが何をしようとしているのかは分かりません。

関連する問題