Usando Stream Result con Struts2
-
05-07-2019 - |
Pregunta
Estoy intentando usar un resultado de transmisión para devolver una imagen desde una aplicación struts2. Parece que estoy teniendo problemas con la configuración de la acción. Aquí está la configuración:
<result name="success" type="stream">
<param name="contentType">image/jpeg</param>
<param name="inputName">inputStream</param>
<param name="contentDisposition">filename="${filename}"</param>
<param name="bufferSize">1024</param>
</result>
El problema parece ser el parámetro inputName que, según los documentos, es:
el nombre de la propiedad InputStream de la acción encadenada (predeterminado = inputStream).
No estoy seguro de qué nombre debo poner allí. El error que recibo es:
No se puede encontrar un java.io.InputStream con el nombre [inputStream] en la pila de invocación.
¿Alguien ha usado esto antes? ¿Algún consejo?
Gracias.
Solución 2
Encontré this lo que explica que el InputStream
tiene que ser creado por mí. Tiene sentido crear un InputStream
a partir del archivo que quiero que el usuario descargue y luego pasar el Stream al resultado. Supongo que esa es mi respuesta.
Otros consejos
Creo que tienes la disposición de contenido incorrecta, debería ser:
<param name="contentDisposition">attachment; filename="${filename}"</param>
( Chris )
Nombre de entrada define el nombre del método que genera el " flujo "
InputStream público getInputStream () { devolver nuevo ByteArrayInputStream (_bytes); }