Etiquetas de formulario MVC de Spring: ¿Hay una manera estándar de agregar el elemento "Sin selección"?

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

  •  03-07-2019
  •  | 
  •  

Pregunta

Hay un menú desplegable de selección y quiero agregar " Sin selección " elemento a la lista que debería darme 'nulo' cuando se envía. Estoy usando el controlador derivado 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;
}

Y la parte jspx es

<form:select path="country" items="${countryList}" title="country"/>

Una posible solución parece ser agregar un valor nulo al comienzo de la lista y luego usar un PropertyEditor personalizado para mostrar este 'nulo' como 'Sin selección'. ¿Hay una mejor solución?

@Edit: Resolví esto con una anotación de validación personalizada que comprueba si el valor seleccionado es " Sin selección " ;. ¿Hay una solución más estándar y más fácil?

¿Fue útil?

Solución

Una opción:

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

Otros consejos

No creo que necesites un editor de propiedades para esto. Si el " en blanco " la opción es la primera en la lista, y la etiqueta que genera la lista no marca ninguna de ellas como seleccionada, luego el navegador debe seleccionar la primera, " en blanco " uno automáticamente.

Cuando envíe el formulario, intente trabajar para que " blank " el valor está vinculado a su comando como nulo, lo que podría suceder automáticamente, dependiendo del tipo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top