Estou com problema no meu código java, porque quando quero adicionar os dados nos campos o botão de adicionar não esta adicionado nos campos.Segue o codigo abaixo em jsf.
<ui:decorate xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:p="http://primefaces.org/ui"
xmlns:f="http://xmlns.jcp.org/jsf/core"
template=“template.xhtml”>
<h:form>
<p:toolbar>
<p:toolbarGroup>
<p:commandButton value="Adicionar" action="#{clienteBean.adicionar()}" update="@form" ></p:commandButton>
</p:toolbarGroup>
</p:toolbar>
<p:fieldset legend="Objetos">
<p:panelGrid columns="2">
<h:outputLabel value="NOME"></h:outputLabel>
<p:inputText value="#{clienteBean.cliente.nome}"></p:inputText>
<h:outputLabel value="CPF"></h:outputLabel>
<p:inputText value="#{clienteBean.cliente.cpf}"></p:inputText>
<h:outputLabel value="EMAIL"></h:outputLabel>
<p:inputText value="#{clienteBean.cliente.email}"></p:inputText>
<h:outputLabel value="TELEFONE"></h:outputLabel>
<p:inputText value="#{clienteBean.cliente.telefone}"></p:inputText>
</p:panelGrid>
<p:dataTable value="#{clienteBean.clientes}" var="cliente">
<p:column headerText="nome">
<h:outputText value="#{cliente.nome}"></h:outputText>
</p:column>
<p:column headerText="cpf">
<h:outputText value="#{cliente.cpf}"></h:outputText>
</p:column>
<p:column headerText="EMAIL">
<h:outputText value="#{cliente.email}"></h:outputText>
</p:column>
<p:column headerText="telefone">
<h:outputText value="#{cliente.telefone}"></h:outputText>
</p:column>
</p:dataTable>
</p:fieldset>
</h:form>
</ui:decorate>
Olá!
Como está implementado o método “adicionar”? Uma coisa que notei é que o “C” do “clienteBean.adicionar()” está com letra maiúscula.
Abraço,
@ManagedBean
@SessionScoped
public class ClienteBean {
private Cliente cliente = new Cliente();
private List<Cliente> clientes = new ArrayList<>();
public void adicionar(){
clientes.add(cliente);
cliente = new Cliente();
}
public Cliente getCliente() {
return cliente;
}
public void setCliente(Cliente cliente) {
this.cliente = cliente;
}
public List<Cliente> getClientes() {
return clientes;
}
public void setClientes(List<Cliente> clientes) {
this.clientes = clientes;
}
}
Ja coloquei o c minusculo no codigo.
Experimente mudar a expressão para action="#{clienteBean.adicionar}".
Ocorre alguma mensagem?
Mudei a expressão como você falou e deu certo agora, o mesmo problema esta acontecendo em outra classe do atendente
<h:form>
<p:toolbar>
<p:toolbarGroup>
<p:commandButton value=“Adicionar” action="#{atendenteBean.adicionar()}“update=”@form"></p:commandButton>
</p:toolbarGroup>
</p:toolbar>
<p:fieldset legend="Objetos">
<p:panelGrid columns="2">
<h:outputLabel value="idAtendente"></h:outputLabel>
<p:inputText id="idAtendente" value="#{atendenteBean.atendente.idAtendente}"></p:inputText>
<h:outputLabel value="senha"></h:outputLabel>
<p:inputText value="#{atendenteBean.atendente.senha}"></p:inputText>
<h:outputLabel value="nome"></h:outputLabel>
<p:inputText value="#{atendenteBean.atendente.nome}"></p:inputText>
<h:outputLabel value="data_cadastro"></h:outputLabel>
<p:inputText value="#{atendenteBean.atendente.data_cadastro}"></p:inputText>
<h:outputLabel value="cargo"></h:outputLabel>
<p:inputText value="#{atendenteBean.atendente.cargo}"></p:inputText>
<h:outputLabel value="descricao"></h:outputLabel>
<p:inputText value="#{atendenteBean.atendente.descricao}"></p:inputText>
</p:panelGrid>
<p:dataTable value="#{atendenteBean.atendentes}" var="atendente">
<p:column headerText="idAtendente">
<h:outputText value="#{atendente.idAtendente}"></h:outputText>
</p:column>
<p:column headerText="senha">
<h:outputText value="#{atendente.senha}"></h:outputText>
</p:column>
<p:column headerText="nome">
<h:outputText value="#{atendente.nome}"></h:outputText>
</p:column>
<p:column headerText="dataCadastro">
<h:outputText value="#{atendente.data_cadastro}"></h:outputText>
</p:column>
<p:column headerText="cargo">
<h:outputText value="#{atendente.cargo}"></h:outputText>
</p:column>
<p:column headerText="descricao">
<h:outputText value="#{atendente.descricao}"></h:outputText>
</p:column>
</p:dataTable>
</p:fieldset>
</h:form>
public class Atendente {
private String idAtendente;
private String senha;
private String nome;
private Date data_Cadastro;
private String cargo;
private String descricao;
public String getidAtendente() {
return idAtendente;
}
public String getIdAtendente() {
return idAtendente;
}
public void setIdAtendente(String idAtendente) {
this.idAtendente = idAtendente;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public Date getData_Cadastro() {
return data_Cadastro;
}
public void setData_Cadastro(Date data_Cadastro) {
this.data_Cadastro = data_Cadastro;
}
public String getDescricao() {
return descricao;
}
public void setDescricao(String descricao) {
this.descricao = descricao;
}
public String getCargo() {
return cargo;
}
public void setCargo(String cargo) {
this.cargo = cargo;
}
public String getSenha() {
return senha;
}
public void setSenha(String senha) {
this.senha = senha;
}
public class AtendenteBean {
private Atendente atendente = new Atendente();
private List atendentes = new ArrayList<>();
public void adicionar(){
atendentes.add(atendente);
atendente = new Atendente();
}
public Atendente getAtendente() {
return atendente;
}
public void setAtendente(Atendente atendente) {
this.atendente = atendente;
}
public List<Atendente> getAtendentes() {
return atendentes;
}
public void setAtendentes(List<Atendente> atendentes) {
this.atendentes = atendentes;
}