E ae galera,
Alguém sabe dizer porquê minha entidade principal em meu MB está vindo com os atributos nulos? O objeto vêm instanciado, só os atributos que vem nulls.
<p:dialog header="Gerencia Países"
widgetVar="dialogFichaPais"
resizable="false"
modal="true"
width="300"
appendToBody="true"
id="dialogFichaPaisTeste"
>
<h:panelGrid id="infosLivro" columns="2" style="margin-bottom:10px">
<h:outputLabel for="codigo" value="Código:" />
<h:inputText id="codigo" value="#{paisController.pais.id.codigo}"/>
<h:outputLabel for="filial" value="Filial:" />
<h:inputText id="filial" value="#{paisController.pais.id.filial.id.codigo}"/>
<h:outputLabel for="nome" value="Nome:" />
<h:inputText id="nome" value="#{paisController.pais.nome}"/>
<p:commandButton id="inserirPais"
immediate="true"
update="tabelaPaises"
oncomplete="dialogFichaPais.hide();"
actionListener="#{paisController.adiciona}"
value="Inserir"
/>
</h:panelGrid>
</p:dialog>
Primeiro o h:inputText não é do primefaces, e sim dos componenetes padrao do jsf os componentes do primefaces devem usar o prefixo p e nao h,
segundo muito provavelmente, tipo 99% de chance voce não ter dado um new no objeto ou naum ter carregado ninguem do banco, mas voce não posto o codigo java ai como naum tenho bola de cristal não vou conseguir adivinhar o que voce não fez…
[quote=CristianPalmaSola10]Primeiro o h:inputText não é do primefaces, e sim dos componenetes padrao do jsf os componentes do primefaces devem usar o prefixo p e nao h,
segundo muito provavelmente, tipo 99% de chance voce não ter dado um new no objeto ou naum ter carregado ninguem do banco, mas voce não posto o codigo java ai como naum tenho bola de cristal não vou conseguir adivinhar o que voce não fez…[/quote]
Passou despercebido o p pelo h, até coloquei o componente do primefaces para ver se era isso, mas não.
Quanto a carregar a minha entidade, está carregando sim, vou repetir o que escrevi só que com outras palavras, o objeto está instanciado no momento que chamo a função de inserir, somente os seus atributos vem com valores nulos.
Cristian, eu lhe faltei com respeito em minha mensagem? Amigo, a primeira impressão é a que fica, é assim que você faz estabelecer novos contatos?
MB:
@ManagedBean
@RequestScoped
public class PaisController extends ControllerAbstract<Pais,PaisService>
{
private Pais pais = new Pais();
private List<Pais> paises = new ArrayList<Pais>();
public void lista()
{
paises = getService().getAll();
}
private void limpa()
{
pais = new Pais();
}
public void preparaParaAdicionar()
{
limpa();
}
public void adiciona()
{
getService().insert(pais);
lista();
}
public void remove()
{
getService().remove(pais);
lista();
}
public void preparaParaAlterar()
{
this.pais = getService().findById(pais.getId(),true);
}
public void altera()
{
getService().update(pais);
}
/*-------------------------------------------------------------------
* GETTERS AND SETTERS
*-------------------------------------------------------------------*/
public Pais getPais()
{
return pais;
}
public void setPais(Pais pais)
{
this.pais = pais;
}
public List<Pais> getPaises()
{
return paises;
}
public void setPaises(List<Pais> paises)
{
this.paises = paises;
}
XHTML
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui"
xmlns:f="http://java.sun.com/jsf/core"
template="/resources/theme/template.xhtml">
<ui:define name="centro">
<h:form id="form">
<p:dataTable id="tabelaPaises"
var="pais"
value="#{paisController.paises}"
rowKey="#{pais.id.codigo}">
<f:facet name="header">
<p:splitButton value="Atualizar" action="#{paisController.lista}" icon="ui-icon-refresh" update="tabelaPaises">
<p:menuitem value="Novo" action="#{paisController.preparaParaAdicionar}" oncomplete="dialogFichaPais.show()" icon="ui-icon-document"/>
<p:menuitem value="Editar" icon="ui-icon-arrowrefresh-1-w"/>
<p:menuitem value="Apagar" ajax="false" icon="ui-icon-close"/>
</p:splitButton>
</f:facet>
<p:column headerText="Código"> #{pais.id.codigo} </p:column>
<p:column headerText="Nome"> #{pais.nome} </p:column>
</p:dataTable>
<!-- ******************************Ficha****************************** -->
<p:dialog header="Gerencia Países"
widgetVar="dialogFichaPais"
resizable="false"
modal="true"
width="300"
appendToBody="true"
id="dialogFichaPaisTeste"
>
<h:panelGrid id="infosLivro" columns="2" style="margin-bottom:10px">
<h:outputLabel for="codigo" value="Código:" />
<p:inputText id="codigo" value="#{paisController.pais.id.codigo}"/>
<h:outputLabel for="filial" value="Filial:" />
<p:inputText id="filial" value="#{paisController.pais.id.filial.id.codigo}"/>
<h:outputLabel for="nome" value="Nome:" />
<p:inputText id="nome" value="#{paisController.pais.nome}"/>
<p:commandButton id="inserirPais"
immediate="true"
update="tabelaPaises"
oncomplete="dialogFichaPais.hide();"
actionListener="#{paisController.adiciona}"
value="Inserir"
/>
</h:panelGrid>
</p:dialog>
</h:form>
</ui:define>
</ui:composition>