Pergunta

Eu estou tentando usar um resultado Stream para retornar uma imagem a partir de um aplicativo struts2. Parece que estou tendo problema com a configuração da ação. Aqui está a configuração:

    <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>

O problema parece ser o parâmetro inputName que de acordo com os documentos é:

o nome da propriedade InputStream da ação encadeada (default = inputStream).

Não estou certo de que nome devo colocar lá. O erro que eu recebo é:

Não é possível encontrar um java.io.InputStream com o nome [inputStream] na pilha de chamada.

Alguém já usou isso antes? Algum conselho?

Graças.

Foi útil?

Solução 2

este , que explicou que o InputStream tem que ser criado por mim. Faz sentido que eu criar um InputStream dos autos que eu quero o usuário para baixar e, em seguida, passar o Stream para o resultado. Eu acho que é a minha resposta.

Outras dicas

Eu acredito que você tem a errada ContentDisposition, que deve ser:

<param name="contentDisposition">attachment; filename="${filename}"</param>

( Chris )

InputName define o nome do método que produz o "stream"

pública InputStream getInputStream () { retornar nova ByteArrayInputStream (_bytes); }

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top