Spring MVC 表单标签:是否有添加"No selection"项目的标准方法?



有一个选择下拉列表,我想添加"没有选择";列表中的项目,提交时应显示为"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"/>

一个可能的解决方案似乎是在列表的开头添加一个null值,然后使用自定义PropertyEditor将此"null"显示为"无选择"。有更好的解决方案吗?

@编辑:我用一个自定义验证注释解决了这个问题,该注释检查所选值是否为"0";无选择";。是否有更标准、更简单的解决方案?

一个选项:

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

我认为您不应该为此使用属性编辑器。如果"空白"选项位于列表中的第一个,并且输出列表的标记没有将其中任何一个标记为选中,则浏览器应自动选择第一个"空白"。

当您提交表单时,请尝试并处理它,以便将"blank"值作为null绑定到您的命令,这可能会自动发生,具体取决于类型。

相关内容

最新更新