2

JSPページに複数の選択を可能にするHTML選択ボックスがあります。

<form action="resources" method="post" >
    <select name="frmSelectedResources" multiple="multiple">
        <option value="1">Bill</option>
        <option value="3">Kathy</option>
        <option value="18">Mike</option>
    </select>
</form> 

私のJavaサーブレットでは、次の方法で選択したリソースの値を取得できます。

String[] assignedResources = request.getParameterValues("frmSelectedResources");

これにより、1,3,18の文字列配列が得られます。しかし、これらの各値のテキストを取得するにはどうすればよいですか?

私はこのようなものを取り戻す必要があります:(1、ビル)、(3、キャシー)、(18、マイク)

私がやろうとしているのは、フォームの検証を行っていて、ユーザーがフォームの他の場所でデータ入力エラーを起こしたときに、[選択されたリソース]リストを再構築することです。

ヘルプや提案を事前に感謝します。

4

3 に答える 3

4

SELECTオプションを入力しながら、文字で区切られたキーを作成します。

<form action="resources" method="post" >
    <select name="frmSelectedResources" multiple="multiple">
        <option value="1:Bill">Bill</option>
        <option value="3:Kathy">Kathy</option>
        <option value="18:Mike">Mike</option>
    </select>
</form> 

使用する

String[] assignedResources = request.getParameterValues("frmSelectedResources");
if (assignedResources != null) {
    for(String item: assignedResources){
        String keyValue[]= item.split(":");
        out.println("Key: " + keyValue[0]);
        out.println("Value: " + keyValue[1]);
    }
}
于 2012-08-21T05:15:08.090 に答える
2

リクエストパラメータから受け取ることはできません(明示的に設定しない限り)。ブラウザはラベルではなく選択したアイテムの値のみを送信し、表示するためだけにラベルを使用します

受け取った値からラベルを解決するマップを用意する

于 2012-08-20T17:30:38.453 に答える
0

あなたは価値だけを得るでしょう。テキストが必要な場合は、1つの方法として、値を"1-Bill"etcなどに変更し、サーブレット内で解析します。

于 2012-08-20T17:30:29.277 に答える