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.