quando pressiono F5 ele executa apenas o getStcImagem() que apresenta em seu conteúdo o mesmo que já existia quando setei ao iniciar (a imagem padrão).
@ManagedBean@SessionScopedpublicclassCadastroDePessoaBean{@EJBprivateImagemDaoimagemDao;privateImagemimagem;privateStreamedContentstcImagem;privateFileUploadEventfue;publicStreamedContentgetStcImagem(){returnstcImagem=newDefaultStreamedContent(fue.getFile().getInputstream(),fue.getFile().getContentType(),fue.getFile().getFileName());}publicvoidsetStcImagem(StreamedContentstcImagem){this.stcImagem=stcImagem;}publicImagemgetImagem(){returnimagem;}publicvoidsetImagem(Imagemimagem){this.imagem=imagem;}publicvoidfileUploadAction(FileUploadEventevent){try{//stcImagem = new DefaultStreamedContent(event.getFile().getInputstream());this.fue=event;imagem=newImagem(event.getFile().getContents());}catch(IOExceptionex){System.out.println(ex.getMessage());}}publicvoidlimparFoto(ActionEventevent){FacesContextcontext=FacesContext.getCurrentInstance();InputStreamio=context.getExternalContext().getResourceAsStream("//resources//images//profile.gif");stcImagem=newDefaultStreamedContent(io);imagem=null;}}
J
jrfercar
Vilsonei, obrigado.
Fiz o que você descreveu e funcionou legal.
Se não for pedir muito, como faço para que a imagem default, que aparece ao clicar no botão limpar, que executa o método limparFoto(), permaneça após o pressionamento da tecla F5 (refresh).
@ManagedBean@SessionScopedpublicclassCadastroDePessoaBean{@EJBprivateImagemDaoimagemDao;privateImagemimagem;privateStreamedContentstcImagem;privateFileUploadEventfue;privateInputStreamio;publicStreamedContentgetStcImagem(){if(imagem!=null)returnstcImagem=newDefaultStreamedContent(fue.getFile().getInputstream(),fue.getFile().getContentType(),fue.getFile().getFileName());elsereturnstcImagem=newDefaultStreamedContent(io);}publicvoidsetStcImagem(StreamedContentstcImagem){this.stcImagem=stcImagem;}publicImagemgetImagem(){returnimagem;}publicvoidsetImagem(Imagemimagem){this.imagem=imagem;}publicvoidfileUploadAction(FileUploadEventevent){try{//stcImagem = new DefaultStreamedContent(event.getFile().getInputstream());this.fue=event;imagem=newImagem(event.getFile().getContents());}catch(IOExceptionex){System.out.println(ex.getMessage());}}publicvoidlimparFoto(ActionEventevent){FacesContextcontext=FacesContext.getCurrentInstance();//InputStream io = context.getExternalContext().getResourceAsStream("//resources//images//profile.gif");io=context.getExternalContext().getResourceAsStream("//resources//images//profile.gif");//stcImagem = new DefaultStreamedContent(io);imagem=null;}}
J
jrfercar
Boa noite vilsonei, obrigado mais uma fez.
Não deu certo com o io sendo passado como parametro no getStrImagem.
continua dando o mesmo problema para a imagem default. Em questão a imagem escolhida pelo fileupload continua tudo legal.
mas quando coloco a imagem padrão e aperto F5 a imagem some.
V
vilsonei
jrfercar, tente desta forma, eu não testei este código, mas acredito que irá dar certo, pois o componente p:graphicImage precisa ser alimentado diretamente da fonte de dados.
@ManagedBean@SessionScopedpublicclassCadastroDePessoaBean{@EJBprivateImagemDaoimagemDao;privateImagemimagem;privateStreamedContentstcImagem;privateFileUploadEventfue;// private InputStream io;publicStreamedContentgetStcImagem(){if(imagem!=null)returnstcImagem=newDefaultStreamedContent(fue.getFile().getInputstream(),fue.getFile().getContentType(),fue.getFile().getFileName());else//return stcImagem = new DefaultStreamedContent(io);returnstcImagem=newDefaultStreamedContent(context.getExternalContext().getResourceAsStream("//resources//images//profile.gif"));}publicvoidsetStcImagem(StreamedContentstcImagem){this.stcImagem=stcImagem;}publicImagemgetImagem(){returnimagem;}publicvoidsetImagem(Imagemimagem){this.imagem=imagem;}publicvoidfileUploadAction(FileUploadEventevent){try{//stcImagem = new DefaultStreamedContent(event.getFile().getInputstream());this.fue=event;imagem=newImagem(event.getFile().getContents());}catch(IOExceptionex){System.out.println(ex.getMessage());}}publicvoidlimparFoto(ActionEventevent){FacesContextcontext=FacesContext.getCurrentInstance();//InputStream io = context.getExternalContext().getResourceAsStream("//resources//images//profile.gif");//io = context.getExternalContext().getResourceAsStream("//resources//images//profile.gif");//stcImagem = new DefaultStreamedContent(io);imagem=null;}}
J
jrfercar
Mais uma vez muito obrigado vilsonei,
Realmente, para se trabalhar com o graphicImage é necessário alimentar a imagem diretamente.