Bom dia a todos
Estou com muita dificuldade neste projeto, criei uma “dataTable” para pegar dados do banco, ao criar um “commandButton” com o intuito de “alterar” os dados da tabela, usei o atributo “action” para enviar um objeto como parâmetros para a classeBen, áte consigo recuperar o objeto porém quanto tento setar este objeto em um “inputText” para realizar a alteração do mesmo , simplesmente não funciona.
o Xhtml
<h:form id=“cadastroPessoa”>
<p:fieldset >
<h:panelGrid columns=“3” id=“teste” >
<p:outputLabel value="name:" />
<p:inputText value="#{listaPessoaBean.pessoa.name}"
id="name" />
<p:message for="name" id="messagename" />
<p:outputLabel value="Email:" />
<p:inputText value="#{pessoaBean.pessoa.email}"
id="email" />
<p:message for="email" id="messageemail" />
<p:outputLabel value="Telefone:" />
<p:inputText value="#{pessoaBean.pessoa.numeroTelefone}"
id="telefone" />
<p:message for="telefone" id="messagetelefone" />
<p:outputLabel value="Logradouro:" />
<p:inputText value="#{pessoaBean.endereco.logradouro}"
id="logradouro" />
<p:message for="logradouro" id="messagelogradouro" />
<p:outputLabel value="CEP:" />
<p:inputText value="#{pessoaBean.endereco.cep}"
id="cep" />
<p:message for="cep" id="messagecep" />
<p:outputLabel value="N °:" />
<p:inputText value="#{pessoaBean.endereco.numeroLocalidade}"
id="n" />
<p:message for="n" id="messagen" />
<p:commandButton value="Salvar fomulario"
action="#{pessoaBean.salvarFomulario}" update="@form"
process="@form" />
</h:panelGrid>
</p:fieldset>
<p:dataTable value="#{listaPessoaBean.pessoas}" var="pessoa"
id="pessoaendereco">
<p:column>
<f:facet name="header">Name</f:facet>
<h:outputText value="#{pessoa.name}" />
</p:column>
<p:column>
<f:facet name="header">Email:</f:facet>
<h:outputText value="#{pessoa.email}" />
</p:column>
<p:column>
<f:facet name="header">N° Telefone:</f:facet>
<h:outputText value="#{pessoa.numeroTelefone}" />
</p:column>
<p:column>
<f:facet name="header">Cep:</f:facet>
<ui:repeat var="pessoalist" value="#{pessoa.end}">
<h:outputText value="#{pessoalist.cep}" />
</ui:repeat>
</p:column>
<p:column>
<f:facet name="header">Logradouro:</f:facet>
<ui:repeat var="pessoalist" value="#{pessoa.end}">
<h:outputText value="#{pessoalist.logradouro}" />
</ui:repeat>
</p:column>
<h:column>
<f:facet name="header">N°Localidade:</f:facet>
<ui:repeat var="pessoalist" value="#{pessoa.end}">
<h:outputText value="#{pessoalist.numeroLocalidade}" />
</ui:repeat>
</h:column>
<p:column>
<f:facet name="header">N°:</f:facet>
<ui:repeat var="pessoalist" value="#{pessoa.end}">
<h:outputText value="#{pessoalist.numeroLocalidade}" />
</ui:repeat>
</p:column>
<p:column>
<p:commandButton value="Remove "
action="#{listaPessoaBean.removePessoa(pessoa)}" />
</p:column>
<p:column>
<p:commandButton value="Altera"
action="#{listaPessoaBean.AlteraPessoa(pessoa)}"
update=":cadastroPessoa:teste"/>
</p:column>
</p:dataTable>
</h:form>
o Bean
@Named
@ViewScoped
public class ListaPessoaBean implements Serializable{
private static final long serialVersionUID = 1L;
@Inject
private dadoDao dao;
private Pessoa pessoa = new Pessoa();
private Endereco endereco = new Endereco();
Logger logger = Logger.getLogger(ListaPessoaBean.class.getName() );
public List<Pessoa> getPessoas() {
List<Pessoa> pessoas = new ArrayList<>();
pessoas = dao.listar();
return pessoas;
}
@Transactional
public String removePessoa(Pessoa p) {
dao.removePesssoa(p);
return "/pessoa/listarPessoa?faces-redirect=true";
}
public void AlteraPessoa(Pessoa p) {
logger.info("deu cert");
//this.pessoa.setName(p.getName());
this.pessoa = p ;
}
public Pessoa getPessoa() {
return pessoa;
}
public void setPessoa(Pessoa pessoa) {
this.pessoa = pessoa;
}
public Endereco getEndereco() {
return endereco;
}
public void setEndereco(Endereco endereco) {
this.endereco = endereco;
}
}