Olá desenvolvedores, neste tutorial iremos criar o campo onde será exibida em tela a imagem em miniatura. No tutorial “BANCO DE DADOS: PROCESSANDO A IMAGEM”, processamos a imagem em seu tamanho original e criamos a miniatura convertendo-a em base64.
Na primeirapagina.xhtml temos uma tabela onde exibimos alguns dos dados que são submetidos via formulário. Escolha um lugar que faça sentido para você exibir a imagem na tabela e então crie uma nova coluna h:column. Com a tag componente f:facet defina um nome para o cabeçalho.
Porém, o componente que irá renderizar a imagem é o h:graphicImage, como atributos definiremos largura e altura em 60px. E como valor, pegaremos o objeto pessoa que está sendo processado e o atributo correspondente a miniatura da imagem.
Abaixo veja como será exibida a imagem na tela para o usuário.
DOWNLOAD DA IMAGEM
Agora queremos que quando a imagem for clicada o download dela seja realizado. Para isso aninharemos a tag h:graphicImage dentro do componente h:commandLink. Esta tag implementará um método por meio do atributo actionListener.
Ao invés de fazer um redirecionamento, o atributo actionListener apenas executará uma ação, isto é, elefaz com que uma ação seja executada no lado do servidor e então o resultado dessa ação é retornado, neste caso, o download é realizado.
Queremos enviar para o servidor o código do usuário para quem haverá uma chamada para o download, e então resgatar a imagem em seu tamanho original, para isso será preciso enviar um parâmetro. Este parâmetro é enviado do lado do cliente, por meio da tag f:param.
A tag f:param fornece as opções para passar parâmetros para um componente ou passar parâmetros de solicitação. O parâmetro que ela enviará é o fileDownloadId. E como valor receberá o objeto pessoa que está sendo processado e o id correspondente.
MÉTODO DE DOWNLOAD()
No ManagedBean, PessoaBean, crie o método download(), que recuperará o parâmetro criado. Assim, utilizando o FacesContent poderemos ter acesso a toda informação que vem de uma requisição JSF – JavaServer Faces.
Criamos então uma variável que irá receber o parâmetro que está sendo enviado pela tela e que corresponde ao Id do objeto pessoa.
EM POUCAS PALAVRAS
Neste tutorial implementamos o campo que exibe a miniatura da imagem na tela e estruturamos nossa aplicação para o download. O que falta agora é recuperar essa pessoa no banco de dados e então dar início ao processo de download.