etiquetas Spring MVC formulário: Existe uma maneira padrão para adicionar “Nenhuma seleção” produto?

StackOverflow https://stackoverflow.com/questions/162497

  •  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?

Foi útil?

Solução

Uma opção:

<form:select path="country" title="country" >
     <form:option value="">&nbsp;</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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top