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"/>

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

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

有帮助吗?

解决方案

一个选项:

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

其他提示

我认为你不应该需要一个属性编辑器。如果“空白”,则为“空白”。选项是列表中的第一个,输出列表的标记不会将其中的任何一个标记为已选中,然后浏览器应选择第一个“空白”列表。一个人自动。

当您提交表单时,请尝试将其设置为“空白”表单。 value作为null绑定到您的命令,这可能会自动发生,具体取决于类型。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top