viernes, 15 de junio de 2012

Generación de recursos PDF, XLS, ZIP, etc. desde Struts

Cuando se le pide a cohesión que genere la aplicación, se produce un archivo comprimido con las carpetas web y src de una aplicación web. Sin embargo hasta ahora, el nombre del archivo era algo como generar.do. El tipo MIME estaba correcto y el recurso se abría con la aplicación correspondiente, pero el nombre del archivo me fastidiaba un poco.

Finalmente encontré una solución sencilla que consiste en agregar un servlet para generar la salida.
En el encabezado del servlet se agrega la anotación correspondiente.

    @WebServlet(name = "ServletGenerarApp", urlPatterns = {"*.zip"})

Con ello las solicitudes de archivos .zip se redirigen hacia ese servlet. Al ejecutarse las acciones del servlet se especifica el tipo de contenido, en este caso archivo con compresión zip.

    response.setContentType("application/zip");

Por otra parte, la acción que genera el recurso, luego de realizar las verificaciones redirige su salida hacia el URL de este servlet.

    String url = nombre + ".zip";
    response.sendRedirect(url);
    return null;

Listo, ahora el archivo comprimido tiene el nombre adecuado.

No hay comentarios:

Publicar un comentario