entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

enviar valores de un select multiple mediante spring al controlador

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";
    }```

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta