Salvar imagem e exibir JSF 2

[i]Galera preciso de ajuda mais uma vez…

Estou fazendo um cadastro e neste cadastro tenho um campo que o usuário pode fazer upload de uma foto, consigo fazer o upload só que preciso salvar esta imagem em algum lugar do servidor e depois exibi-la no browser quando for solicitado.

Tentei da seguinte forma:[/i]

public void handleFileUpload(FileUploadEvent event) {
		foto = event.getFile().getContents();
		fileName = event.getFile().getFileName();
		fileType = event.getFile().getContentType();

		ServletContext context = (ServletContext) FacesContext
				.getCurrentInstance().getExternalContext().getContext();

		File file = new File(
				context.getRealPath("/imagens/"+ new SimpleDateFormat("dd-MM-yyyy").format(new Date())));

		if (!file.exists()) {
			file.mkdirs();
		}

		filePath = file + "\\" + fileName;

		criaArquivo(foto, filePath);
	}
private void criaArquivo(byte[] bytes, String file) {
		FileOutputStream outputStream;

		try {
			outputStream = new FileOutputStream(file);
			outputStream.write(bytes);
			outputStream.close();
		} catch (FileNotFoundException e) {
			LOGGER.error(e.getMessage());
		} catch (IOException e) {
			LOGGER.error(e.getMessage());
		}
	}

[i]Estas imagens estão sendo armazenadas corretamente e o caminho esta sendo gravado no banco corretamente também, porém não sei como faço para exibi-las num datatable, por exemplo.

Estou usando JSF2 + Primefaces.

E outra duvida, gravando estas imagens no contexto da aplicação, terei algum problema futuro referente a perder as imagens por estarem no contexto??

Obrigado galera.[/i]

Neste exemplo de fieldSet dá pra ver como exibir imagem:
http://www.primefaces.org/showcase-labs/ui/fieldset.jsf

[quote=ErickRAR]Neste exemplo de fieldSet dá pra ver como exibir imagem:
http://www.primefaces.org/showcase-labs/ui/fieldset.jsf[/quote]

[i]Este exemplo ele mostra com a imagem no contexto da aplicação, as imagens que eu armazeno fica no contexto da aplicação no servidor.

Entendeu?[/i]

vc esta armazenando em pastas certo ??? se for isso use o p:graphicImage ai na value vc coloca /imagens/nomedaImagem.jpg

Pode colocar endereços que estão fora do contexto da aplicação. Quando eu usei o fieldset, coloquei o endereço dessa imagem do Poderoso chefão e funcionou normalmente.

[i]Tentei colocar o caminho da imagem por um managed bean…

Porém não encontrou a imagem…

Existe algum exemplo fazendo isso?

Obrigado.[/i]

Tenho um problema parecido
preciso gerar um pdf dinamicamente e exibi-lo num frame

[quote=erivandons]Tenho um problema parecido
preciso gerar um pdf dinamicamente e exibi-lo num frame [/quote]

para esse problema do PDF vc gera o pdf(usa o jasper para isso) e devolve ele no stream.
de preferência cria um servlet pra fazer isso. e no iframe vc aponta a url do servlet…
na verdade, a mesma lógica pode ser aplicada para a imagem.

Meu velho, dá uma olhada nesse exemplo aqui.
Eu postei ele esses tempos quando tive um problema similar ao seu.
Eu não enviei para pasta as imagens, salvei elas num DB.
Mas o teu caso acho que é mais tranquilo.
A lógica da minha aplicação era:

  • Upa ela para uma pasta.
  • Pega desta pasta e sobe para o DB
    Para dar o retorno para a view
    -Faz o select no banco por algum critério
    -Joga numa pasta e faz a tua “galleria” na view apontar para essa pasta.

Esqueci de colar o link.
Segue: