Boa noite pessoal , quando tento salvar uma variável no xhtml diz que minha variável é nula.
que estar retornando um valor nulo,
Tipo esse a seguir:
value="#{fabricanteBean.fabricante.descricao}": Target Unreachable, [fabricante] returned null
Ja tentei ver qual é o problema mais o meu codigo parece estar certo.
E o problema estar apenas nessa entidade
Abaixo vai os meus codigos do ManegeBen e o xhtml, se souberem resolver serei muito grato!
package br.pro.james.drogaria.bean;
import java.io.Serializable;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import org.omnifaces.util.Messages;
import br.pro.james.drogaria.dao.FabricanteDao;
import br.pro.james.drogaria.domain.Fabricante;
@SuppressWarnings(“serial”)
@ManagedBean
@ViewScoped
public class FabricanteBean implements Serializable {
private Fabricante fabricante;
public List<Fabricante> fabricantes;
@PostConstruct
public void Listar() {
try {
FabricanteDao fabricanteDao = new FabricanteDao();
fabricanteDao.listar();
}catch(RuntimeException erro) {
Messages.addGlobalInfo("Ocoreu um erro ao tentar listar os fabricantes");
erro.printStackTrace();
}
}
public Fabricante getFabricante() {
return fabricante;
}
public void setFabricante(Fabricante fabricante) {
this.fabricante = fabricante;
}
public List<Fabricante> getFabricantes() {
return fabricantes;
}
public void setFabricantes(List<Fabricante> fabricantes) {
this.fabricantes = fabricantes;
}
public void novo() {
fabricante = new Fabricante();
}
public void salvar() {
try {
FabricanteDao fabricanteDao = new FabricanteDao();
fabricanteDao.merge(fabricante);
fabricante = new Fabricante();
}catch(RuntimeException erro) {
Messages.addGlobalInfo("Ocoreu um erro ao tentar salvar os fabricantes");
erro.printStackTrace();
xhtml :
<?xml version="1.0" encoding="UTF-8" ?><h:head>
Fabricantes<h:form id=“formListagem”>
<p:panel header=“Fabricante - Listagem”>
<p:dataTable emptyMessage=“Nenhum registro encontado.“
paginator=“true” value=”#{fabricanteBean.fabricantes}” var=“fabricantecursor”>
<f:facet name=“header”>
<p:commandButton value=“Novo” oncomplete = “PF(‘dialogo’).show();“
actionListiner=”#{fabricanteBean.novo()}”/>
</f:facet>
<p:column headerText=“Nome”>
<h:outputText value="#{fabricantecursor.descricao}" />
</p:column>
<p:column headerText=“Opções”>
</p:column>
</p:dataTable>
</p:panel>
</h:form>
<p:dialog header ="Fabricantes - Cadastro" widgetVar="dialogo"
draggable="false" resizable="false" modal="true" closable ="false">
<h:form>
<h:panelGrid columns = "2">
<p:outputLabel value="Nome:" />
<p:inputText maxlenght="50" size ="30" value="#{fabricanteBean.fabricante.descricao}"/>
</h:panelGrid>
<h:panelGrid columns = "2">
<p:commandButton value="Salvar" oncomplete = "PF('dialogo').hide();" actionListener="#{fabricanteBean.salvar}"
/>
<p:commandButton value="Fechar" oncomplete = "PF('dialogo').hide();"/>
</h:panelGrid>
</h:form>
</p:dialog>
</h:body>
Obs: não sei se o erro estar no xhtml ou no manageBen, O hibernate funcionando perfeitamente.
O Domain e o Dao tambem.