Pessoal estou tentando inserir um registro no datatable utilizando o primefaces,porém ele nem apresenta erro
Informações: Hibernate: select usuario0_.codigo as codigo1_1_, usuario0_.usuario as usuario2_1_, usuario0_.senha as senha3_1_ from public.usuario usuario0_
Advertência: /views/usuario/index.xhtml @66,118 value="#{usuarioBean.selectedUsuario.usuario}": Target Unreachable, 'null' returned null
javax.el.PropertyNotFoundException: /views/usuario/index.xhtml @66,118 value="#{usuarioBean.selectedUsuario.usuario}": Target Unreachable, 'null' returned null
at com.sun.faces.facelets.el.TagValueExpression.getType(TagValueExpression.java:100)
at org.primefaces.util.ComponentUtils.getConverter(ComponentUtils.java:128)
at org.primefaces.renderkit.InputRenderer.getConvertedValue(InputRenderer.java:171)
at javax.faces.component.UIInput.getConvertedValue(UIInput.java:1045)
at javax.faces.component.UIInput.validate(UIInput.java:975)
at javax.faces.component.UIInput.executeValidate(UIInput.java:1248)
at javax.faces.component.UIInput.processValidators(UIInput.java:712)
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1258)
at javax.faces.component.UIForm.processValidators(UIForm.java:253)
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1258)
at org.primefaces.component.dialog.Dialog.processValidators(Dialog.java:385)
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1258)
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1258)
at javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:1195)
at com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:76)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:646)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:318)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:415)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:282)
at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:459)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:167)
at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:201)
at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:175)
at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:235)
at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:284)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:201)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:133)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:112)
at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:561)
at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:56)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:137)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:565)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:545)
at java.lang.Thread.run(Thread.java:745)
Caused by: javax.el.PropertyNotFoundException: Target Unreachable, 'null' returned null
at com.sun.el.parser.AstValue.getTarget(AstValue.java:192)
at com.sun.el.parser.AstValue.getType(AstValue.java:86)
at com.sun.el.ValueExpressionImpl.getType(ValueExpressionImpl.java:201)
at org.jboss.weld.el.WeldValueExpression.getType(WeldValueExpression.java:93)
at com.sun.faces.facelets.el.TagValueExpression.getType(TagValueExpression.java:98)
... 45 more
Grave: javax.el.PropertyNotFoundException: /views/usuario/index.xhtml @66,118 value="#{usuarioBean.selectedUsuario.usuario}": Target Unreachable, 'null' returned null
at com.sun.faces.facelets.el.TagValueExpression.getType(TagValueExpression.java:100)
at org.primefaces.util.ComponentUtils.getConverter(ComponentUtils.java:128)
at org.primefaces.renderkit.InputRenderer.getConvertedValue(InputRenderer.java:171)
at javax.faces.component.UIInput.getConvertedValue(UIInput.java:1045)
at javax.faces.component.UIInput.validate(UIInput.java:975)
at javax.faces.component.UIInput.executeValidate(UIInput.java:1248)
at javax.faces.component.UIInput.processValidators(UIInput.java:712)
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1258)
at javax.faces.component.UIForm.processValidators(UIForm.java:253)
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1258)
at org.primefaces.component.dialog.Dialog.processValidators(Dialog.java:385)
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1258)
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1258)
at javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:1195)
at com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:76)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:646)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:318)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:415)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:282)
at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:459)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:167)
at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:201)
at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:175)
at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:235)
at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:284)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:201)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:133)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:112)
at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:561)
at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:56)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:137)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:565)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:545)
at java.lang.Thread.run(Thread.java:745)
Caused by: javax.el.PropertyNotFoundException: Target Unreachable, 'null' returned null
at com.sun.el.parser.AstValue.getTarget(AstValue.java:192)
at com.sun.el.parser.AstValue.getType(AstValue.java:86)
at com.sun.el.ValueExpressionImpl.getType(ValueExpressionImpl.java:201)
at org.jboss.weld.el.WeldValueExpression.getType(WeldValueExpression.java:93)
at com.sun.faces.facelets.el.TagValueExpression.getType(TagValueExpression.java:98)
... 45 more
public void btnCriarUsuario(ActionEvent actionEvent) {
UsuarioDao usuarioDao = new UsuarioDaoImpl();
String msg;
if(usuarioDao.criar(this.selectedUsuario)) {
msg= "Usuário foi gravado com Sucesso" ;
FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO, msg ,null);
FacesContext.getCurrentInstance().addMessage(null, message);
}else {
msg= "Erro,Usuario não foi cadastrado" ;
FacesMessage messagem = new FacesMessage(FacesMessage.SEVERITY_ERROR,msg,null);
FacesContext.getCurrentInstance().addMessage(null, messagem);
}
.O meu banco de dados é postgres e o atributo código é bigserial o código é gerado automaticamente . Segue minhas classes para que vocês analisem.
package model;
// Generated 15/11/2014 23:21:06 by Hibernate Tools 4.3.1
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
/**
* Usuario generated by hbm2java
*/
@Entity
@Table(name="usuario"
,schema="public"
)
public class Usuario implements Serializable {
private Integer codigo;
private String usuario;
private String senha;
public Usuario() {
this.codigo = 0;
}
public Usuario(Integer codigo) {
this.codigo = codigo;
}
public Usuario(Integer codigo, String usuario, String senha) {
this.codigo = codigo;
this.usuario = usuario;
this.senha = senha;
}
@Id
@Column(name="codigo", unique=true, nullable=false)
public Integer getCodigo() {
return this.codigo;
}
public void setCodigo(Integer codigo) {
this.codigo = codigo;
}
@Column(name="usuario", length=40)
public String getUsuario() {
return this.usuario;
}
public void setUsuario(String usuario) {
this.usuario = usuario;
}
@Column(name="senha", length=8)
public String getSenha() {
return this.senha;
}
public void setSenha(String senha) {
this.senha = senha;
}
}
package dao;
import java.util.List;
import model.Usuario;
/**
*
* @author Administrador
*/
public interface UsuarioDao {
public Usuario findByUsuario(Usuario usuario);
public Usuario login(Usuario usuario);
public List<Usuario> findAll();
public boolean criar (Usuario usuario);
public boolean update(Usuario usuario);
public boolean delete (Integer codigo);
}
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package dao;
import java.util.List;
import model.Usuario;
import org.hibernate.Session;
import util.HibernateUtil;
/**
*
* @author Administrador
*/
public class UsuarioDaoImpl implements UsuarioDao {
@Override
public Usuario findByUsuario(Usuario usuario) {
Usuario model = null;
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
String sql="FROM Usuario WHERE usuario = '"+usuario.getUsuario()+"'";
try {
session.beginTransaction();
model = (Usuario) session.createQuery(sql).uniqueResult();
session.beginTransaction().commit();
}catch (Exception e ) {
session.beginTransaction().rollback();
}
return model;
}
@Override
public Usuario login(Usuario usuario) {
Usuario model = this.findByUsuario(usuario);
if(model != null) {
if(!usuario.getSenha().equals(model.getSenha())) {
model = null;
}
}
return model;
}
@Override
public List<Usuario> findAll() {
List <Usuario> listado = null;
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
String sql="FROM Usuario";
try {
session.beginTransaction();
listado = session.createQuery(sql).list();
session.beginTransaction().commit();
}catch (Exception e ) {
session.close();
// session.beginTransaction().rollback();
}
return listado;
}
@Override
public boolean criar(Usuario usuario) {
boolean flag;
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
try {
session.beginTransaction();
session.save(usuario);
session.beginTransaction().commit();
flag = true;
}catch (Exception e ) {
flag = false;
session.beginTransaction().rollback();
}
return flag;
}
@Override
public boolean update(Usuario usuario) {
boolean flag;
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
try {
session.beginTransaction();
session.update(usuario);
session.beginTransaction().commit();
flag = true;
}catch (Exception e ) {
flag = false;
session.beginTransaction().rollback();
}
return flag;
}
@Override
public boolean delete(Integer codigo) {
boolean flag;
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
try {
session.beginTransaction();
Usuario usuario = (Usuario) session.load(Usuario.class,codigo);
session.delete(usuario);
session.beginTransaction().commit();
flag = true;
}catch (Exception e ) {
flag = false;
session.beginTransaction().rollback();
}
return flag;
}
}
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package bean;
import dao.UsuarioDao;
import dao.UsuarioDaoImpl;
import java.awt.event.ActionEvent;
import java.util.ArrayList;
import java.util.List;
import javax.inject.Named;
import javax.enterprise.context.RequestScoped;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import model.Usuario;
/**
*
* @author Administrador
*/
@Named(value = "usuarioBean")
@RequestScoped
public class usuarioBean {
private List<Usuario> usuarios;
private Usuario selectedUsuario;
public usuarioBean() {
this.usuarios = new ArrayList<Usuario>();
}
public List<Usuario> getUsuarios() {
UsuarioDao usuarioDao = new UsuarioDaoImpl();
this.usuarios = usuarioDao.findAll();
return usuarios;
}
/**
* @return the selectedUsuario
*/
public Usuario getSelectedUsuario() {
return selectedUsuario;
}
public void setSelectedUsuario(Usuario selectedUsuario) {
this.selectedUsuario = selectedUsuario;
}
public void btnCriarUsuario(ActionEvent actionEvent) {
UsuarioDao usuarioDao = new UsuarioDaoImpl();
String msg;
if(usuarioDao.criar(this.selectedUsuario)) {
msg= "Usuário foi gravado com Sucesso" ;
FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO, msg ,null);
FacesContext.getCurrentInstance().addMessage(null, message);
}else {
msg= "Erro,Usuario não foi cadastrado" ;
FacesMessage messagem = new FacesMessage(FacesMessage.SEVERITY_ERROR,msg,null);
FacesContext.getCurrentInstance().addMessage(null, messagem);
}
}
public void btnUpdateUsuario(ActionEvent actionEvent) {
UsuarioDao usuarioDao = new UsuarioDaoImpl();
String msg;
if(usuarioDao.update(this.selectedUsuario)) {
msg="Usuário foi atualizado com Sucesso!";
}else {
msg="Erro,Usuario não foi Atualizado!";
}
FacesMessage messagem = new FacesMessage(FacesMessage.SEVERITY_INFO,msg,null);
FacesContext.getCurrentInstance().addMessage(null, messagem);
}
public void btnDeleteUsuario(ActionEvent actionEvent) {
UsuarioDao usuarioDao = new UsuarioDaoImpl();
String msg;
if(usuarioDao.delete(this.selectedUsuario.getCodigo())) {
msg="Usuário foi excluido com Sucesso!";
}else {
msg="Erro,Usuario não foi Excluido!";
}
FacesMessage messagem = new FacesMessage(FacesMessage.SEVERITY_INFO,msg,null);
FacesContext.getCurrentInstance().addMessage(null, messagem);
}
}
Pagina Web Primefaces
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:p="http://primefaces.org/ui"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:f="http://xmlns.jcp.org/jsf/core">
<body>
<ui:composition template="./../template.xhtml">
<ui:define name="content">
<p:growl id="msgs" showDetail="true" />
<h:form>
<p:commandButton id="btnUsuarioCriar" update=":formCriar" oncomplete=" PF('dialogUsuarioCriar').show()" icon="icon-criar" title="Criar" value="Criar"/>
</h:form>
<h:form id="formDataTable">
<p:dataTable var="usuario" value="#{usuarioBean.usuarios}">
<f:facet name="header">
Basic
</f:facet>
<p:column headerText="Codigo" >
<h:outputText value="#{usuario.codigo}" />
</p:column>
<p:column headerText="Usuario" >
<h:outputText value="#{usuario.usuario}" />
</p:column>
<p:column headerText="Senha">
<h:outputText value="#{usuario.senha}" />
</p:column>
<p:column style="width:80px;text-align: center">
<p:commandButton id="btnUptade" update=":formUpdate" oncomplete=" PF('dialogUsuarioUpdate').show()" icon="atualizar" title="Atualizar">
<f:setPropertyActionListener value="#{usuario}" target="#{usuarioBean.selectedUsuario}" />
</p:commandButton>
<p:commandButton id="btnDelete" update=":formDelete" oncomplete=" PF('dialogUsuarioDelete').show()" icon="deletar" title="Deletar">
<f:setPropertyActionListener value="#{usuario}" target="#{usuarioBean.selectedUsuario}" />
</p:commandButton>
</p:column>
</p:dataTable>
</h:form>
<h:form id="formCriar">
<p:dialog header="Incluir Usuario" widgetVar="dialogUsuarioCriar" resizable="false" id="dlgUsuarioCriar"
showEffect="fade" hideEffect="explode" modal="true" >
<h:panelGrid id="display" columns="2" cellpadding="4" style="margin:0 auto;" >
<h:outputText value="Codigo" />
<p:inputText value="#{usuarioBean.selectedUsuario.codigo}" style="font-weight: bold" />
<h:outputText value="Usuario" />
<p:inputText value="#{usuarioBean.selectedUsuario.usuario}" style="font-weight: bold" />
<h:outputText value="Senha" />
<p:inputText value="#{usuarioBean.selectedUsuario.senha}" style="font-weight: bold" />
<f:facet name="footer">
<p:commandButton id="btnUsuarioSalvar" update=":formDataTable, :msgs" oncomplete="dialogUsuarioCriar.hide()" actionListener="#{usuarioBean.btnCriarUsuario(actionEvent)}" icon="icon-salvar" title="Salvar" value="Salvar"/>
<p:commandButton id="btnUsuarioCancelar" oncomplete=" PF('dialogUsuarioCriar').hide()" icon="icon-cancelar" title="Cancelar" value="Cancelar"/>
</f:facet>
</h:panelGrid>
</p:dialog>
</h:form>
<h:form id="formUpdate">
<p:dialog header="Modificar Usuario" widgetVar="dialogUsuarioUpdate" resizable="false" id="dlgUsuarioUpdate"
showEffect="fade" hideEffect="explode" modal="true" >
<h:panelGrid id="display" columns="2" cellpadding="4" style="margin:0 auto;" >
<h:outputText value="Codigo" />
<p:inputText value="#{usuarioBean.selectedUsuario.codigo}" />
<h:outputText value="Usuario" />
<p:inputText value="#{usuarioBean.selectedUsuario.usuario}" />
<h:outputText value="Senha" />
<p:inputText value="#{usuarioBean.selectedUsuario.senha}" />
<f:facet name="footer">
<p:commandButton id="btnUsuarioAtualizar" update=":formDataTable, :msgs" oncomplete=" dialogUsuarioUpdate.hide()" icon="icon-salvar" title="Atualizar" value="Atualizar"/>
<p:commandButton id="btnUsuarioCancelar" styleClass="ui-confirmdialog-no" oncomplete=" PF('dialogUsuarioUpdate').hide()" icon="icon-cancelar" title="Cancelar" value="Cancelar"/>
</f:facet>
</h:panelGrid>
</p:dialog>
</h:form>
<h:form id="formDelete">
<p:confirmDialog global="true" id="confirmDialog"
header="Excluir Usuário"
message="Você tem certeza que deseja excluir este usuário?"
severity="alert" widgetVar="dialogUsuarioDelete" >
<p:commandButton id="confirm" value="Sim " update=":msgs" oncomplete="dialogUsuarioDelete.hide()"
actionListener="#{usuarioBean.btnDeleteUsuario}" icon="icon-ok"/>
<p:commandButton id="Cancelar" value="Nao" styleClass="ui-confirmdialog-no" onclick="dialogUsuarioDelete.hide()" type="button" icon="icon-cancelar" />
</p:confirmDialog>
</h:form>
</ui:define>
</ui:composition>
</body>
</html>