Opa to em um projeto aqui, e queria implementar, queria fazer algo como quando cadastrar um novo usuario que tenha como adicionar uma foto também, e quando o usuario logar mostrar a foto do usuario que estiver logado, isso é possivel?
Opa to em um projeto aqui, e queria implementar, queria fazer algo como quando cadastrar um novo usuario que tenha como adicionar uma foto também, e quando o usuario logar mostrar a foto do usuario que estiver logado, isso é possivel?
é possível sim alisson,
aqui vai uma possível solução:
1- No banco de dados você deve criar uma tabela que possui os campos do usuário e um atributo do tipo BLOB
a- se você cria seu banco na mão fica mais ou menos assim:
CREATE TABLE usuario (
`loginUser` VARCHAR(200) NOT NULL,
`passwordUser` VARCHAR(250) NOT NULL,
`imageUser` MEDIUMBLOB NULL,
PRIMARY KEY (`loginUser`)
)
b- se você usa JPA fica assim:
//... restante dos atribrutos
@Lob
@Column(name = "imageUser")
private byte[] imageUser;
// ... restante da classe;
Este atributo BLOB é um array de bytes, onde sua imagem será decomposta em uma longa sequência binária que posteriormente você poderá recupera-la e transforma-la em uma imagem novamente.
O primefaces ajuda bastante nesta tarefa, veja um exemplo de como utiliza-lo para fazer essa conversão utilizando a ferramenta de "upload" deles.
trecho do xhtml:
<p:fileUpload id="Imagem" required="true" auto="false" sizeLimit="300000" requiredMessage="A foto principal é obrigatória" update="@form" fileLimit="1" fileUploadListener="#{ManageUserManagedBean.uploadImagemUsuario}" allowTypes="/(\.|\/)(gif|jpe?g|png)$/" />
<p:graphicImage id="imagemUsuario" width="110" height="110" cache="false" class="img-thumbnail" value="#{ManageUserManagedBean.imagemAtual}" />
Métodos do Backend bean para suportar tais ações :
public StreamedContent getImagemAtual() throws IOException {
FacesContext context = FacesContext.getCurrentInstance();
if (context.getCurrentPhaseId() == PhaseId.RENDER_RESPONSE) {
return new DefaultStreamedContent();
} else {
return new DefaultStreamedContent(new ByteArrayInputStream(actualUser.getImageUser())); // nesta parte do código ele pega o array de bytes e converte em uma imagem de verdade.
}
}
public void uploadImagemUsuario(FileUploadEvent event) {
actualUser.setImageUser(event.getFile().getContents()); // aqui ele pega a imagem que o usuário inseriu e transforma em um array de Bytes para poder ser salvo no banco de dados
}
Oi Vinisto primeiramente obrigado por me ajudar, mais fiquei perdido aqui.
<p:fileUpload id="Imagem" required="true" auto="false" sizeLimit="300000" requiredMessage="A foto principal é obrigatória" update="@form" fileLimit="1" fileUploadListener="#{ManageUserManagedBean.uploadImagemUsuario}" allowTypes="/(\.|\/)(gif|jpe?g|png)$/" />
na parte do
fileUploadListener="#{ManageUserManagedBean.uploadImagemUsuario}"
Nessa parte fiquei perdido, aonde que to ligando aqui? Meu projeto tá desse jeito, se poder me ajudar novamente ficarei grato.
mport java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.Lob;
import javax.persistence.OneToOne;
@Entity
@SuppressWarnings("serial")
public class Usuario implements Serializable{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long codigo;
private String login;
private String senha;
private String confirmarSenha;
@Lob
private byte[] imagem;
@OneToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "perfil_codigo")
private Perfil perfil = new Perfil();
depois meu controller.
@Named
@ViewScoped
@SuppressWarnings("serial")
public class CadastroUsuarioBean implements Serializable {
@Inject
private Usuario usuario;
@Inject
private UsuarioDao usuarioDao;
@Inject
private Perfil perfil;
@Inject
private PerfilDao perfilDao;
@Transacao
public void adicionarUsuario() {
if (this.usuario.getCodigo() == null) {
if (verificarSenhaComConfirmarSenha()) {
this.perfilDao.salvar(perfil);
Perfil perfilCodigo = this.perfilDao.buscarPorCodigo(perfil.getCodigo());
this.usuario.setPerfil(perfilCodigo);
this.usuarioDao.salvar(usuario);
MensagemUtil
.mensagemSalvoComSucesso("Usuario salvo com sucesso");
} else {
MensagemUtil.mensagemError("Usuario ou senha invalido");
}
} else {
this.perfilDao.editar(perfil);
this.usuarioDao.editar(usuario);
MensagemUtil.mensagemSalvoComSucesso("Usuario editado com sucesso");
}
this.usuario = new Usuario();
this.perfil = new Perfil();
}
@Transacao
public void remover() {
this.usuarioDao.excluir(usuario);
this.perfilDao.excluir(perfil);
MensagemUtil.mensagemSalvoComSucesso("Usuario excluido com sucesso");
}
public void carregarExclusao(Usuario usuario) {
this.usuario = usuario;
this.perfil = usuario.getPerfil();
System.out.println(usuario.toString());
}
public Boolean verificarSenhaComConfirmarSenha() {
return this.usuario.getSenha().equals(this.usuario.getConfirmarSenha()) ? true : false;
}
public NivelDoAcesso[] getNivelAcesso() {
return NivelDoAcesso.values();
}
public void carregar(Usuario usuario) {
this.usuario = usuario;
this.perfil = usuario.getPerfil();
System.out.println(this.usuario.toString());
}
public void novo() {
this.usuario = new Usuario();
this.perfil = new Perfil();
}
public Usuario getUsuario() {
return usuario;
}
public void setUsuario(Usuario usuario) {
this.usuario = usuario;
}
public Perfil getPerfil() {
return perfil;
}
public void setPerfil(Perfil perfil) {
this.perfil = perfil;
}
}
e depois meu xhtml.
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui" template="/WEB-INF/template.xhtml">
<ui:define name="title">
Cadastro de usuario
</ui:define>
<ui:define name="content">
<div class="ui-g">
<div class="ui-g-12">
<div class="ui-fluid">
<p:growl id="mensagem" life="6000" />
<h:form id="tabelaUsuario">
<p:dataTable reflow="true" value="#{usuarioBean.listaUsuarios}"
var="usuario" paginator="true" rows="5">
<f:facet name="footer">
<p:commandButton value="Inserir" icon="fa fa-fw fa-plus"
style="width: 100px" styleClass="secondary"
onclick="PF('dlgInserir').show();"
actionListener="#{cadastroUsuarioBean.novo}"
update=":formularioCadastro" />
</f:facet>
<p:column headerText="Código">
<p:outputLabel value="#{usuario.codigo}" />
</p:column>
<p:column headerText="Usuario">
<p:outputLabel value="#{usuario.login}" />
</p:column>
<p:column headerText="Senha">
<p:outputLabel value="#{usuario.senha}" />
</p:column>
<p:column headerText="ConfirmaSenha">
<p:outputLabel value="#{usuario.confirmarSenha}" />
</p:column>
<p:column headerText="Permissão">
<p:outputLabel value="#{usuario.perfil.nivelAcesso}" />
</p:column>
<p:column headerText="Opção">
<p:panelGrid columns="2"
columnClasses="ui-grid-col-6,ui-grid-col-6" layout="grid"
styleClass="ui-panelgrid-blank">
<p:commandButton title="Editar" icon="fa fa-fw fa-edit"
styleClass="secondary"
actionListener="#{cadastroUsuarioBean.carregar(usuario)}"
oncomplete="PF('dlgEditar').show();"
update=":formularioEditar" />
<p:commandButton title="Excluir" icon="fa fa-fw fa-remove"
styleClass="secondary"
actionListener="#{cadastroUsuarioBean.carregarExclusao(usuario)}"
oncomplete="PF('dlgExcluir').show();"
update=":formularioExcluir" />
</p:panelGrid>
</p:column>
</p:dataTable>
</h:form>
</div>
<p:dialog responsive="true" appendTo="@(body)" resizable="false"
closable="true" showEffect="slide" hideEffect="drop" modal="true"
draggable="false" widgetVar="dlgInserir"
header="Cadastro de usuario">
<h:form id="formularioCadastro">
<p:panelGrid columns="2"
columnClasses="ui-grid-col-6,ui-grid-col-6" layout="grid"
styleClass="ui-panelgrid-blank">
<p:outputLabel value="Login: " for="login" />
<p:inputText id="login" required="true"
requiredMessage="O campo login é obrigatório"
value="#{cadastroUsuarioBean.usuario.login}" />
<p:outputLabel value="Senha: " for="senha" />
<p:password required="true" id="senha"
value="#{cadastroUsuarioBean.usuario.senha}" feedback="false"
redisplay="true" requiredMessage="O campo senha é obrigatório" />
<p:outputLabel value="Confirmar senha: " for="confirmarSenha" />
<p:password id="confirmarSenha" required="true" redisplay="true"
requiredMessage="O campo confimarSenha é obrigatório"
value="#{cadastroUsuarioBean.usuario.confirmarSenha}"
feedback="false" />
<p:outputLabel value="Acesso ao sistema: " for="acessoSistema" />
<p:selectOneMenu id="acessoSistema"
value="#{cadastroUsuarioBean.perfil.nivelAcesso}"
required="true" requiredMessage="Nivel de acesso é obrigatório">
<f:selectItem itemValue="" itemLabel="SELECIONE..." />
<f:selectItems value="#{cadastroUsuarioBean.nivelAcesso}" />
</p:selectOneMenu>
</p:panelGrid>
<div class="ui-fluid">
<p:panelGrid columns="2"
columnClasses="ui-grid-col-6,ui-grid-col-6" layout="grid"
styleClass="ui-panelgrid-blank">
<p:commandButton value="Salvar" styleClass="secondary"
actionListener="#{cadastroUsuarioBean.adicionarUsuario}"
update=":mensagem :tabelaUsuario formularioCadastro"
icon="fa fa-fw fa-save" />
<p:commandButton value="Voltar" styleClass="secondary"
onclick="PF('dlgInserir').hide();" immediate="true" />
</p:panelGrid>
</div>
</h:form>
</p:dialog>
Oque deveria fazer para seu código funcionar no meu projeto? Obrigado
Neste trecho você deve inserir um campo para colocar o listener para upload de arquivos (fotos):
<p:panelGrid columns="2"
columnClasses="ui-grid-col-6,ui-grid-col-6" layout="grid"
styleClass="ui-panelgrid-blank">
<p:fileUpload id="Imagem" required="true" auto="false" sizeLimit="300000" requiredMessage="A foto principal é obrigatória" update="@form" fileLimit="1" fileUploadListener="#{ManageUserManagedBean.uploadImagemUsuario}" allowTypes="/(\.|\/)(gif|jpe?g|png)$/" />
<p:graphicImage id="imagemUsuario" width="110" height="110" cache="false" class="img-thumbnail" value="#{ManageUserManagedBean.imagemAtual}" />
<p:outputLabel value="Login: " for="login" />
<p:inputText id="login" required="true"
requiredMessage="O campo login é obrigatório"
value="#{cadastroUsuarioBean.usuario.login}" />
<p:outputLabel value="Senha: " for="senha" />
<p:password required="true" id="senha"
value="#{cadastroUsuarioBean.usuario.senha}" feedback="false"
redisplay="true" requiredMessage="O campo senha é obrigatório" />
<p:outputLabel value="Confirmar senha: " for="confirmarSenha" />
<p:password id="confirmarSenha" required="true" redisplay="true"
requiredMessage="O campo confimarSenha é obrigatório"
value="#{cadastroUsuarioBean.usuario.confirmarSenha}"
feedback="false" />
<p:outputLabel value="Acesso ao sistema: " for="acessoSistema" />
<p:selectOneMenu id="acessoSistema"
value="#{cadastroUsuarioBean.perfil.nivelAcesso}"
required="true" requiredMessage="Nivel de acesso é obrigatório">
<f:selectItem itemValue="" itemLabel="SELECIONE..." />
<f:selectItems value="#{cadastroUsuarioBean.nivelAcesso}" />
</p:selectOneMenu>
</p:panelGrid>
Logo depois você insere no seu backend bean os metodos indicados:
public StreamedContent getImagemAtual() throws IOException {
FacesContext context = FacesContext.getCurrentInstance();
if (context.getCurrentPhaseId() == PhaseId.RENDER_RESPONSE) {
return new DefaultStreamedContent();
} else {
return new DefaultStreamedContent(new ByteArrayInputStream(cadastroUsuarioBean.usuario.getImageUser())); // nesta parte do código ele pega o array de bytes e converte em uma imagem de verdade.
}
}
public void uploadImagemUsuario(FileUploadEvent event) {
cadastroUsuarioBean.usuario.setImageUser(event.getFile().getContents()); // aqui ele pega a imagem que o usuário inseriu e transforma em um array de Bytes para poder ser salvo no banco de dados
}
assim ao salvar o JPA persistirá o blob junto com o objeto de usuário
Para salvar a imagem no bando de dados então basta esse metodo?
public void uploadImagemUsuario(FileUploadEvent event) {
cadastroUsuarioBean.usuario.setImageUser(event.getFile().getContents()); // aqui ele pega a imagem que o usuário inseriu e transforma em um array de Bytes para poder ser salvo no banco de dados
}
Depois o outro metodo serve para recuperar a imagem?
public StreamedContent getImagemAtual() throws IOException {
FacesContext context = FacesContext.getCurrentInstance();
if (context.getCurrentPhaseId() == PhaseId.RENDER_RESPONSE) {
return new DefaultStreamedContent();
} else {
return new DefaultStreamedContent(new ByteArrayInputStream(cadastroUsuarioBean.usuario.getImageUser())); // nesta parte do código ele pega o array de bytes e converte em uma imagem de verdade.
}
}
Aqui ele converter a imagem de byte para imagem de verdade? Seria algo assim?
Isso msm... estes métodos convertem a imagem em um array de bytes.
Assim como vc preenche os outros campos do backend bean, vc atribui o vetor de bytes ao objeto que vai ser salvo.
Ao executar a função de salvar... ele salva a imagem junto.
Vinistos correto, eu consegui salvar a imagem com o metodo que você passou, ela fica salva como BLOB mesmo kkk, mais na hora de mostrar a imagem, recebo o tal erro.
ago 12, 2017 11:48:50 PM org.primefaces.application.resource.StreamedContentHandler handle
GRAVE: Error in streaming dynamic resource. Error reading 'imagemAtual' on type br.com.borracharia.bean.CadastroUsuarioBean$Proxy$_$$_WeldSubclass
ago 12, 2017 11:48:50 PM org.apache.catalina.core.StandardWrapperValve invoke
GRAVE: Servlet.service() for servlet [Faces Servlet] in context with path [/borracharia] threw exception
java.io.IOException: javax.el.ELException: Error reading 'imagemAtual' on type br.com.borracharia.bean.CadastroUsuarioBean$Proxy$_$$_WeldSubclass
at org.primefaces.application.resource.StreamedContentHandler.handle(StreamedContentHandler.java:106)
at org.primefaces.application.resource.PrimeResourceHandler.handleResourceRequest(PrimeResourceHandler.java:95)
at javax.faces.application.ResourceHandlerWrapper.handleResourceRequest(ResourceHandlerWrapper.java:153)
at javax.faces.application.ResourceHandlerWrapper.handleResourceRequest(ResourceHandlerWrapper.java:153)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:655)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:509)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1104)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:684)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1520)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1476)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Unknown Source)
Caused by: javax.el.ELException: Error reading 'imagemAtual' on type br.com.borracharia.bean.CadastroUsuarioBean$Proxy$_$$_WeldSubclass
at javax.el.BeanELResolver.getValue(BeanELResolver.java:101)
at com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:176)
at com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:203)
at org.apache.el.parser.AstValue.getValue(AstValue.java:169)
at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:184)
at org.jboss.weld.el.WeldValueExpression.getValue(WeldValueExpression.java:50)
at org.primefaces.application.resource.StreamedContentHandler.handle(StreamedContentHandler.java:70)
... 25 more
Caused by: java.lang.NullPointerException
at java.io.ByteArrayInputStream.<init>(Unknown Source)
at br.com.borracharia.bean.CadastroUsuarioBean.getImagemAtual(CadastroUsuarioBean.java:75)
at br.com.borracharia.bean.CadastroUsuarioBean$Proxy$_$$_WeldSubclass.getImagemAtual(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at javax.el.BeanELResolver.getValue(BeanELResolver.java:97)
... 31 more
ago 12, 2017 11:48:50 PM org.primefaces.application.resource.StreamedContentHandler handle
GRAVE: Error in streaming dynamic resource. Error reading 'imagemAtual' on type br.com.borracharia.bean.CadastroUsuarioBean$Proxy$_$$_WeldSubclass
ago 12, 2017 11:48:50 PM org.apache.catalina.core.StandardWrapperValve invoke
GRAVE: Servlet.service() for servlet [Faces Servlet] in context with path [/borracharia] threw exception
java.io.IOException: javax.el.ELException: Error reading 'imagemAtual' on type br.com.borracharia.bean.CadastroUsuarioBean$Proxy$_$$_WeldSubclass
at org.primefaces.application.resource.StreamedContentHandler.handle(StreamedContentHandler.java:106)
at org.primefaces.application.resource.PrimeResourceHandler.handleResourceRequest(PrimeResourceHandler.java:95)
at javax.faces.application.ResourceHandlerWrapper.handleResourceRequest(ResourceHandlerWrapper.java:153)
at javax.faces.application.ResourceHandlerWrapper.handleResourceRequest(ResourceHandlerWrapper.java:153)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:655)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:509)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1104)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:684)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1520)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1476)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Unknown Source)
Caused by: javax.el.ELException: Error reading 'imagemAtual' on type br.com.borracharia.bean.CadastroUsuarioBean$Proxy$_$$_WeldSubclass
at javax.el.BeanELResolver.getValue(BeanELResolver.java:101)
at com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:176)
at com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:203)
at org.apache.el.parser.AstValue.getValue(AstValue.java:169)
at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:184)
at org.jboss.weld.el.WeldValueExpression.getValue(WeldValueExpression.java:50)
at org.primefaces.application.resource.StreamedContentHandler.handle(StreamedContentHandler.java:70)
... 25 more
Caused by: java.lang.NullPointerException
at java.io.ByteArrayInputStream.<init>(Unknown Source)
at br.com.borracharia.bean.CadastroUsuarioBean.getImagemAtual(CadastroUsuarioBean.java:75)
at br.com.borracharia.bean.CadastroUsuarioBean$Proxy$_$$_WeldSubclass.getImagemAtual(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at javax.el.BeanELResolver.getValue(BeanELResolver.java:97)
... 31 more
Sabe oque que pode ser? Fiz exatamente como você indicou.
<p:column headerText="Foto">
<p:graphicImage width="110" height="110"
cache="false" class="img-thumbnail"
value="#{cadastroUsuarioBean.imagemAtual}" />
</p:column>
e o metodo.
public StreamedContent getImagemAtual() throws IOException {
FacesContext context = FacesContext.getCurrentInstance();
if (context.getCurrentPhaseId() == PhaseId.RENDER_RESPONSE) {
return new DefaultStreamedContent();
} else {
return new DefaultStreamedContent(new ByteArrayInputStream(this.usuario.getImagem()));
}
}
:((
Consegui aqui irmãozinho mt obrigado!