etiquetas Spring MVC formulário: Existe uma maneira padrão para adicionar “Nenhuma seleção” produto?
-
03-07-2019 - |
Pergunta
Há um seleto suspenso e eu quero adicionar "Nenhuma seleção" item à lista wich deve dar-me 'nulo' quando submetidos. Estou usando SimpleFormController derivado controlador.
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;
}
E a parte JSPX é
<form:select path="country" items="${countryList}" title="country"/>
Uma possível solução parece estar em adicionando um valor nulo para o início da lista e, em seguida, usando um PropertyEditor personalizado para disply esta 'nulo' como 'Nenhuma seleção'. Existe uma solução melhor?
@EDIT: Eu ter resolvido isso com uma anotação de validação personalizada que verifica se o valor selecionado é "Não Selection". Existe uma solução mais padrão e mais fácil?
Solução
Uma opção:
<form:select path="country" title="country" >
<form:option value=""> </form:option>
<form:options items="${countryList}" />
</form:select>
Outras dicas
Eu não acho que você deve precisar de um editor de propriedade para isso. Se a opção "em branco" é o primeiro na lista e a tag que saídas a lista não marcar qualquer um deles, conforme selecionado, o navegador deve selecionar o primeiro, "em branco" um automaticamente.
Quando você enviar o formulário, tente e trabalhá-lo para que o valor "em branco" está vinculado ao seu comando como um nulo, o que pode acontecer automaticamente, dependendo do tipo.