Spring MVC Formタグ:「選択なし」を追加する標準的な方法はありますか?項目?

StackOverflow https://stackoverflow.com/questions/162497

  •  03-07-2019
  •  | 
  •  

質問

選択ドロップダウンがあり、「選択なし」を追加したいリストへのアイテムは、送信時に「null」を与えるはずです。 SimpleFormController派生コントローラーを使用しています。

protected Map referenceData(HttpServletRequest httpServletRequest, Object o, Errors errors) throws Exception {
    Map<String, Object> map = new HashMap<String, Object>();

    map.put("countryList", Arrays.asList(Country.values()));

    return map;
}

そしてjspxの部分は

<form:select path="country" items="${countryList}" title="country"/>

可能な解決策の1つは、リストの先頭にnull値を追加し、カスタムPropertyEditorを使用してこの「null」を「No selection」として表示することです。 より良い解決策はありますか?

@Edit:選択した値が「No Selection」であるかどうかを確認するカスタム検証アノテーションでこれを解決しました。より標準的で簡単なソリューションはありますか?

役に立ちましたか?

解決

1つのオプション:

<form:select path="country" title="country" >
     <form:option value="">&nbsp;</form:option>
     <form:options items="${countryList}" />
</form:select>

他のヒント

このためにプロパティエディタが必要になるとは思わない。 「空白」がオプションがリストの最初にあり、リストを出力するタグがそれらのいずれも選択済みとしてマークしない場合、ブラウザは最初の「空白」を選択する必要があります。自動的に1つ。

フォームを送信するときは、「空欄」が値はnullとしてコマンドにバインドされ、タイプによっては自動的に発生する場合があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top