Boa tarde.
Pessoal, estou com um problema, onde o mesmo não me gera erro nenhum. ele simplesmente não estah populando partes de meu formulario.
Tenho 2 tabelas relacionadas, Produto e Autor:
- Para inserir os dados ele insere normalmente, tanto produto qto o autor
- Porem ao clicar no link para alterar ele popula os dados do produto, e os dados do autor vem nulos. :?
MB
@ViewScoped
@ManagedBean
public class ProdutoBean {
private Produto produto = new Produto();
private List<Produto> produtos;
private Autor autor = new Autor();
//se o id for nulo então salva, se não, atualiza
public void grava(){
Dao<Produto> dao = new Dao<Produto>(Produto.class);
if(produto.getId() == null){
produto.setAutor(autor);
dao.salva(produto);
}else{
dao.atualiza(produto);
}
this.autor = new Autor();
this.produto = new Produto();
this.produtos = dao.listaTudo();
}
//getter setter
XHTML
<h:form id="formLista">
<p:dataTable value="#{produtoBean.produtos}" var="p" paginator="true" rows="5">
<p:column headerText="ISBN">
#{p.code}
</p:column>
<p:column headerText="Titulo">
#{p.titulo}
</p:column>
<p:column headerText="Genero">
#{p.genero}
</p:column>
<p:column headerText="Preco">
<h:outputText value="#{p.preco}">
<f:convertNumber pattern="R$ #0.00" />
</h:outputText>
</p:column>
<p:column headerText="Peso">
#{p.peso}
</p:column>
<p:column headerText="Autor">
#{p.autor.nome}
</p:column>
<p:column headerText="Sobre">
<h:outputText value="#{p.autor.sobre}" escape="false" />
</p:column>
<p:column headerText="Acoes" >
<h:commandLink value="Alterar">
<f:setPropertyActionListener value="#{p}" target="#{produtoBean.produto}">
<f:ajax execute="@form" render="@form :formAdicao" />
</f:setPropertyActionListener>
</h:commandLink>
</p:column>
<p:column headerText="Acoes">
<h:commandLink action="#{produtoBean.remove(p)}" value="remover">
<f:ajax render="@form" />
</h:commandLink>
</p:column>
</p:dataTable>
</h:form>
Alguma ideia?
Vlw fico no aguardo.
