UDA-EJIE / udaRUP

RUP components repository
Other
13 stars 10 forks source link

[rup_table] No se respeta el método del formulario para los casos multipart #297

Closed ma-santamaria closed 1 year ago

ma-santamaria commented 1 year ago

Si se configura una rup_table para editar mediante un formulario multipart (multipart: true) al guardar los datos siempre se realiza una petición PUT en vez de POST

No es posible usar un PUT con los formularios multipart porque esto provoca que nunca lleguen los datos al controlador (todos los campos del ModelAttribute son nulos). Esto se debe a que el multipart resolver usado (CommonsMultipartResolver) no considera como contenido multipart las peticiones que no sean POST

public static final boolean isMultipartContent(HttpServletRequest request) {
    return !"POST".equalsIgnoreCase(request.getMethod())
        ? false
        : FileUploadBase.isMultipartContent(new ServletRequestContext(request));
}

Este comportamiento se puede ver en la aplicación de ejemplo; al probar una tabla con formulario multipart se envía un PUT y la respuesta que se obtiene es un error porque el controlador espera un POST (el error no se muestra en la vista, pero si se inspecciona la respuesta del servidor se puede ver que es "Request method 'PUT' not supported")

xaabi6 commented 1 year ago

Aupa @ma-santamaria, efectivamente, tienes razón, pero ya lo corregimos la semana pasada en el commit 610332761938f97406602615cb27feb826386caa y será liberado en la próxima versión, no obstante, gracias por el aviso 👍