Spring MVC表单标签:是否有添加"无选择"项目的标准方法?
时间:2020-03-06 15:01:41 来源:igfitidea点击:
有一个选择下拉列表,我想在列表中添加"无选择"项,提交时应该给我"空"。
我正在使用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"/>
一种可能的解决方案似乎是在列表的开头添加一个null值,然后使用自定义的PropertyEditor将这个" null"显示为" No selection"。
有更好的解决方案吗?
@Edit:我已经通过自定义验证注释解决了这个问题,该注释检查所选值是否为" No Selection"。有没有更标准,更简单的解决方案?
解决方案
一种选择:
<form:select path="country" title="country" > <form:option value=""> </form:option> <form:options items="${countryList}" /> </form:select>
我认为我们不需要为此的属性编辑器。如果"空白"选项位于列表的首位,并且输出列表的标记未将其中的任何一个标记为选中,则浏览器应自动选择第一个"空白"选项。
提交表单时,请尝试并使用它,以便将"空白"值绑定为命令的空值,该值可能会自动发生,具体取决于类型。