Hola, estoy intentando enviar un form mediante spring con la etiqueta <form:form> y tengo un campo que es un <form:select> cuyo path es "menMensajesDestinatarioses" que es un atributo de tipo List de la clase MenMensajes.
El problema es que cuando paso este objeto al controlador con el formulario, no llega el campo del select y por tanto "menMensajesDestinatarioses" es null. Aqui dejo el codigo por si alguien me puede ayudar. Muchas gracias.
EL FORMULARIO
<form:form cssClass="smart-form" id="frmNuevoMensaje" method="POST" action="enviarMensaje.htm" commandName="menMensaje" modelAttribute="menMensaje">
<div class="form-group">
<label for="destinatarios">Destinatarios</label>
<form:select multiple="multiple" path="menMensajesDestinatarioses">
<form:options items="${cboUsuarios}" itemValue="usuarioId" itemLabel="nombreCompleto" >
</form:select>
</div>
<div class="form-group">
<label for="asunto">Asunto</label><br>
<form:input class="form-control" path="asunto"></form:input>
</div>
<label>Tipo de mensaje</label>
<div class="radioButtons grupoFormulario form-group">
<form:radiobuttons items="${cboTiposMensaje}" itemLabel="descripcionTipoMsg" itemValue="tipoMensajeId" path="maeTiposMensaje.tipoMensajeId"></form:radiobuttons>
</div>
<div class="grupoFormulario">
<label for="descripcion">Mensaje </label>
<form:textarea id="descripcion" class="summernote" path="texto"></form:textarea>
<form:hidden path="creadoPor"></form:hidden>
<fmt:formatDate value="${menMensaje.fechaCreacion}" var="fechaResultadoFormat" pattern="dd/MM/yyyy" >
<form:input type="hidden" path="fechaCreacion" value="${fechaResultadoFormat}"></form:input>
<fmt:formatDate value="${menMensaje.fechaEnvio}" var="fechaResultadoFormat2" pattern="dd/MM/yyyy" >
<form:input type="hidden" path="fechaEnvio" value="${fechaResultadoFormat2}"></form:input>
<fmt:formatDate value="${menMensaje.fechaModificacion}" var="fechaResultadoFormat3" pattern="dd/MM/yyyy" >
<form:input type="hidden" path="fechaModificacion" value="${fechaResultadoFormat3}"></form:input>
<form:hidden path="modificadoPor"></form:hidden>
<form:hidden path="estado"></form:hidden>
<form:hidden path="aplicacionId"></form:hidden>
<input type="submit" value="Enviar" class="botonMenu smallButton">
</div>
<div>
<a href="mensajes.htm">Volver</a>
</div>
</form:form>
EL CONTROLADOR
@RequestMapping(value = "enviarMensaje.htm")
public String enviarMensaje(HttpSession session, @Valid @ModelAttribute("menMensaje") MenMensajes mensaje,
BindingResult result, ModelMap modelMap) {
Integer intOpcion = 1;
AppUsuarios user = (AppUsuarios) session.getAttribute("usuarioVO");//usuario de la sesion
BigDecimal usuarioId = user.getUsuarioId();//guardar el id del usuario de la sesion para pasarlo como parametro
try {
String respuesta = mensajesDelegate.enviarMensaje(mensaje);
//System.out.println("El primer ID del usuario dest:"+mensaje.getMenMensajesDestinatarioses().get(0).getUsuarioId());
modelMap.addAttribute("exito", respuesta);
modelMap.addAttribute("mensajes", mensajesDelegate.listarMensajesTodos(usuarioId, intOpcion));
modelMap.addAttribute("opcion", intOpcion);
modelMap.addAttribute("menMensaje", mensajesDelegate.cargarMensaje(usuarioId, null)); //pasarle un objeto MenMensajes al formulario de nuevo mensaje que esta oculto en un modal.
modelMap.addAttribute("cboUsuarios", mensajesDelegate.cargarUsuarios()); //pasarle la lista de usuarios de la BD para combo de nuevo mensaje
modelMap.addAttribute("cboTiposMensaje", mensajesDelegate.cargarTiposMensaje()); //pasarle la lista de tipos de mensaje de la BD para el combo de nuevo mensaje
} catch (Exception e) {
System.out.println("Error en nuevoMensaje.htm");
}
return "/mensajes/index";
}```