Spring MVC Formタグ:「選択なし」を追加する標準的な方法はありますか?項目?
-
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=""> </form:option>
<form:options items="${countryList}" />
</form:select>
他のヒント
このためにプロパティエディタが必要になるとは思わない。 「空白」がオプションがリストの最初にあり、リストを出力するタグがそれらのいずれも選択済みとしてマークしない場合、ブラウザは最初の「空白」を選択する必要があります。自動的に1つ。
フォームを送信するときは、「空欄」が値はnullとしてコマンドにバインドされ、タイプによっては自動的に発生する場合があります。
所属していません StackOverflow