[Struts2] - Display Image  XML
Índice dos Fóruns » Ferramentas, Frameworks e Utilitários
Autor Mensagem
hodrigohamalho
JavaChild
[Avatar]

Membro desde: 05/10/2008 11:32:24
Mensagens: 132
Offline

Tenho várias imagens em uma pasta do servidor ex: /opt/data
e preciso mostra-las na jsp, já dei uma boa googlada aqui e não consegui ver uma maneira elegante de fazer isso.

A maioria dos exemplos que encontro na internet mostra o "resultStream", mas pelo que vi com esse resultStream soh consigo renderizar uma única imagem (como se fosse um download, clicou abre a imagem)




Alguém que já tenha passado por isso antes,
como fez?
alguma sugestão?

obs: Todas as imagens possuem a mesma extensão (.jpg)

Rodrigo Ramalho



"Eu tenho a humildade de aprender com as pessoas, e nao a arrogância de ensinar o que eu não sei..."
[Email]
jyoshiriro
Virtual Machine Man
[Avatar]

Membro desde: 17/06/2009 14:14:39
Mensagens: 587
Offline

Se você quer exibir imagens que estão em uma pasta, pode simplesmente fazer algo assim:

1. Copie elas para sua pasta de aplicação. Ficar acessando arquivos de fora dela é uma má prática e só pode ser feito com soluções "não elegantes".

2. Crie um mapeamento coringa, como


Assim, a url http://<ip><porta>/<contexto>/geral-img-sair.jpg.action faria o arquivo sair.jpg da pasta "pasta_das_imagens" ser enviado ao browser.

Espero ter ajudado.

José Yoshiriro Ajisaka Ramos

OCUP Fundamental / SCJP 6 / SCWCD 5 / SCBCD 5
[Email] [WWW]
hodrigohamalho
JavaChild
[Avatar]

Membro desde: 05/10/2008 11:32:24
Mensagens: 132
Offline

O problema é que as imagens são geradas dinâmicamente, logo toda vez que "criasse" uma nova imagem o tomcat fica tentando redeployar a aplicação, o que acaba acarretando uma perca de performance muito grande...

por isso preciso pegar a imagem de uma pasta externa a webapps.

Rodrigo Ramalho



"Eu tenho a humildade de aprender com as pessoas, e nao a arrogância de ensinar o que eu não sei..."
[Email]
jyoshiriro
Virtual Machine Man
[Avatar]

Membro desde: 17/06/2009 14:14:39
Mensagens: 587
Offline

Tem certeza que o Tomcat fará hot deploy? Não são só conteúdos nas pastas internas a WEB-INF que forçam isso?

José Yoshiriro Ajisaka Ramos

OCUP Fundamental / SCJP 6 / SCWCD 5 / SCBCD 5
[Email] [WWW]
hodrigohamalho
JavaChild
[Avatar]

Membro desde: 05/10/2008 11:32:24
Mensagens: 132
Offline

hum...
verdade velho, deixei passar esse detalhe, aqui estava acontecendo o hotdeploy mas não por causa disso dai acabei me confundindo.

vlw

Rodrigo Ramalho



"Eu tenho a humildade de aprender com as pessoas, e nao a arrogância de ensinar o que eu não sei..."
[Email]
jyoshiriro
Virtual Machine Man
[Avatar]

Membro desde: 17/06/2009 14:14:39
Mensagens: 587
Offline

Pois é... O ideal era essas imagens estarem na sua pasta de aplicação. Para que elas sejam copiadas para dentro de sua aplicação pode fazer via cron do linux ou criar uma thread no seu listener de aplicação web.

José Yoshiriro Ajisaka Ramos

OCUP Fundamental / SCJP 6 / SCWCD 5 / SCBCD 5
[Email] [WWW]
hodrigohamalho
JavaChild
[Avatar]

Membro desde: 05/10/2008 11:32:24
Mensagens: 132
Offline

É, mas acabou que vou ter que pegar de uma pasta externa mesmo,
tem alguma sugestão pra mostrar isso na jsp?

Rodrigo Ramalho



"Eu tenho a humildade de aprender com as pessoas, e nao a arrogância de ensinar o que eu não sei..."
[Email]
jyoshiriro
Virtual Machine Man
[Avatar]

Membro desde: 17/06/2009 14:14:39
Mensagens: 587
Offline

Se for só pra mostrar a imagem direto é como no exemplo que te passei (ou por anotação).

Se quiser mostrar a imagem dentro de um JSPque também tem outras coisas é só usar o mesmo mapeamento numa tag <img>

José Yoshiriro Ajisaka Ramos

OCUP Fundamental / SCJP 6 / SCWCD 5 / SCBCD 5
[Email] [WWW]
hodrigohamalho
JavaChild
[Avatar]

Membro desde: 05/10/2008 11:32:24
Mensagens: 132
Offline

Hum, mas esse mapeamento no struts.xml pega caminho externo?

Coloquei aqui assim, e não funcionou:

No struts.xml


Sendo que dentro da pasta do meu sistema "/opt/" tem a imagem: "thumb-pepsi.jpg"

Na jsp, (coloquei no hard-code mesmo só pra testar)

This message was edited 1 time. Last update was at 06/12/2010 14:08:54


Rodrigo Ramalho



"Eu tenho a humildade de aprender com as pessoas, e nao a arrogância de ensinar o que eu não sei..."
[Email]
jyoshiriro
Virtual Machine Man
[Avatar]

Membro desde: 17/06/2009 14:14:39
Mensagens: 587
Offline

Não.. não pega caminho externo porque nenhum framework WEB é projetado pra isso. Acessar recursos fora da pasta do contexto WEB não é recomendado, entendeu?
Por isso que te digo que ou você copia essa imagens manualmente para uma pasta dentro de sua aplicação ou cria/configura algo que fique copiando essa imagens de tempos em tempos.

José Yoshiriro Ajisaka Ramos

OCUP Fundamental / SCJP 6 / SCWCD 5 / SCBCD 5
[Email] [WWW]
hodrigohamalho
JavaChild
[Avatar]

Membro desde: 05/10/2008 11:32:24
Mensagens: 132
Offline

Hum acho que o cenário que eu to enfrentando é bem parecido com quem salva as imagens no banco.
Porque ambos conseguem chegar em um inputStream, mas pra mostrar na tela só escrevendo direto no response?

e.g: http://www.exampledepot.com/egs/javax.servlet/GetImage.html

Rodrigo Ramalho



"Eu tenho a humildade de aprender com as pessoas, e nao a arrogância de ensinar o que eu não sei..."
[Email]
 
Índice dos Fóruns » Ferramentas, Frameworks e Utilitários
Ir para:   
Powered by JForum 2.1.8 © JForum Team