Ola,
Meu problema é o seguinte, tenho uma tabela com alguns dados e um botão para alterar esses dados, quando clico no botão não vem nenhuma informação para alterar, nem chega a bater no meu bean, alias nenhum botão bate no bean.
Vou postar o código dos dois
JSF
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:p="http://primefaces.org/ui" xmlns:ui="http://java.sun.com/jsf/facelets">
<h:head>
<style>
#menu .currentClientes a {
background: #950D08;
color: #FFFFFF;
}
</style>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<meta name="keywords" content="" />
<meta name="description" content="" />
<link href="http://fonts.googleapis.com/css?family=Oswald" rel="stylesheet" type="text/css" />
<link href="css/default.css" rel="stylesheet" type="text/css" media="all" />
<!--[if IE 6]>
<link href="default_ie6.css" rel="stylesheet" type="text/css" />
<![endif]-->
</h:head>
<h:body>
<div id="welcome">
<h2 class="title">
<a href="#">Clientes</a>
</h2>
<div class="content">
<h:form id="form">
<p:growl id="growl" showDetail="true" sticky="false" />
<p:dataTable id="tabela" value="#{clientBean.clients}" var="clie" emptyMessage="Nenhum registro encontrado." paginator="true" rows="10">
<f:facet name="header">
Lista de Clientes - Total: #{clientBean.totalClients}
</f:facet>
<p:column headerText="Nome" sortBy="#{clie.name}" filterBy="#{clie.name}" style="text-align: center; width:10%; font: 16px Arial;">
<h:outputText value="#{clie.name}" styleClass="dataStyle" />
</p:column>
<p:column headerText="Telefone" sortBy="#{clie.phone}" filterBy="#{clie.phone}" style="text-align: center; width:10%; font: 16px Arial;">
<h:outputText value="#{clie.phone}" styleClass="dataStyle" />
</p:column>
<p:column headerText="E-mail" sortBy="#{clie.mail}" filterBy="#{clie.mail}" style="text-align: center; width:10%; font: 16px Arial;">
<h:outputText value="#{clie.mail}" styleClass="dataStyle" />
</p:column>
<p:column headerText="Cidade" sortBy="#{clie.city}" filterBy="#{clie.city}" style="text-align: center; width:10%; font: 16px Arial;">
<h:outputText value="#{clie.city}" styleClass="dataStyle" />
</p:column>
<p:column style="text-align: center; width:15%">
<p:commandButton id="alterButton" update=":form:displayEdit" oncomplete="cliAlterDialog.show()" icon="ui-icon-pencil" title="Editar" style="width:30%">
<f:setPropertyActionListener value="#{clie}" target="#{clientBean.selectClient}" />
</p:commandButton>
<p:commandButton id="olharButton" oncomplete="descClienteDialog.show()" icon="ui-icon-pencil" title="Detalhes" style="width:30%">
<f:setPropertyActionListener value="#{clie}" target="#{clientBean.selectClient}" />
</p:commandButton>
<p:commandButton icon="ui-icon-trash" onclick="confirmation.show()" style="width:30%">
<f:setPropertyActionListener value="#{clie}" target="#{clientBean.request}" />
</p:commandButton>
</p:column>
<f:facet name="footer">
<p:commandButton id="insertButton" value="Inserir" icon="ui-icon-pencil" update=":form:tabela" oncomplete="cliInsertDialog.show()" />
</f:facet>
</p:dataTable>
<p:dialog header="Alterar Client" widgetVar="cliAlterDialog" resizable="false" id="cliAlterDialog" showEffect="fade" hideEffect="explode" modal="true">
<h:panelGrid id="displayEdit" columns="2" cellpadding="4" style="margin:0 auto;">
<h:outputLabel value="Nome:*" for="nameAlter" />
<p:inputText id="nameAlter" required="true" value="#{clientBean.selectClient.name}" style="font-size: 12px;"/>
<h:outputLabel value="Cpf:*" for="cpfAlter" />
<p:inputText id="cpfAlter" required="true" value="#{clientBean.selectClient.cpf}" style="font-size: 12px;"/>
<h:outputLabel value="Telefone:*" for="phoneAlter" />
<p:inputText id="phoneAlter" required="true" value="#{clientBean.selectClient.phone}" style="font-size: 12px;"/>
<h:outputLabel value="E-mail:*" for="mailAlter" />
<p:inputText id="mailAlter" required="true" value="#{clientBean.selectClient.mail}" style="font-size: 12px;"/>
<h:outputLabel value="Cidade:*" for="cityAlter" />
<p:inputText id="cityAlter" required="true" value="#{clientBean.selectClient.city}" style="font-size: 12px;"/>
<h:outputLabel value="Estado:" for="stateAlter" />
<p:selectOneMenu id="stateAlter" value="#{clientBean.selectClient.state}" effect="highlight" style="font-size: 12px;">
<f:selectItem itemLabel="Selecione.." itemValue="" />
<f:selectItems value="#{clientBean.stateList}" />
</p:selectOneMenu>
<h:outputLabel value="Endereço:*" for="addressAlter" />
<p:inputText id="addressAlter" required="true" value="#{clientBean.selectClient.address}" style="font-size: 12px;"/>
<h:outputLabel value="Cep:*" for="cepAlter" />
<p:inputText id="cepAlter" required="true" value="#{clientBean.selectClient.cep}" style="font-size: 12px;"/>
<p:commandButton update="tabela" oncomplete="cliAlterDialog.hide();" actionListener="#{clientBean.edit}" value="Salvar" />
</h:panelGrid>
</p:dialog>
<p:dialog header="Incluir Cliente" widgetVar="cliInsertDialog" resizable="false" id="cliInsertDialog" showEffect="fade" hideEffect="explode" modal="true">
<h:panelGrid id="displaySave" columns="2" cellpadding="4" style="margin:0 auto;">
<h:outputLabel value="Nome:*" for="nameInsert" />
<p:inputText id="nameInsert" required="true" value="#{clientBean.client.name}" style="font-size: 12px;"/>
<h:outputLabel value="Cpf:*" for="cpfInsert" />
<p:inputText id="cpfInsert" required="true" value="#{clientBean.client.cpf}" style="font-size: 12px;"/>
<h:outputLabel value="Telefone:*" for="phoneInsert" />
<p:inputText id="phoneInsert" required="true" value="#{clientBean.client.phone}" style="font-size: 12px;"/>
<h:outputLabel value="E-mail:*" for="mailInsert" />
<p:inputText id="mailInsert" required="true" value="#{clientBean.client.mail}" style="font-size: 12px;"/>
<h:outputLabel value="Cidade:*" for="cityInsert" />
<p:inputText id="cityInsert" required="true" value="#{clientBean.client.city}" style="font-size: 12px;"/>
<h:outputLabel value="Estado:" for="stateInsert" />
<p:selectOneMenu id="stateInsert" value="#{clientBean.client.state}" effect="highlight" style="font-size: 12px;">
<f:selectItem itemLabel="Selecione.." itemValue="" />
<f:selectItems value="#{clientBean.stateList}" />
</p:selectOneMenu>
<h:outputLabel value="Endereço:*" for="addressInsert" />
<p:inputText id="addressInsert" required="true" value="#{clientBean.client.address}" style="font-size: 12px;"/>
<h:outputLabel value="Cep:*" for="cepInsert" />
<p:inputText id="cepInsert" required="true" value="#{clientBean.client.cep}" style="font-size: 12px;"/>
<p:commandButton id="saveBtn" update=":form:tabela" actionListener="#{clientBean.save}" oncomplete="cliInsertDialog.hide();" value="Salvar" />
</h:panelGrid>
</p:dialog>
<p:dialog header="Dados do Cliente" widgetVar="descClienteDialog" resizable="false" id="descClienteDialog" showEffect="fade" hideEffect="explode" modal="true">
<p:outputPanel id="panel" autoUpdate="true">
<h:outputLabel value="Nome:" for="nameLook" />
<h:outputText id="nameLook" value="#{clientBean.selectClient.name}" style="font-size: 12px;" />
</p:outputPanel>
</p:dialog>
<p:confirmDialog message="Deseja realmente excluir este registro?" hideEffect="explode" header="Aviso" severity="alert" widgetVar="confirmation" modal="true">
<p:commandButton id="btnSim" value="Sim" oncomplete="confirmation.hide();" actionListener="#{clientBean.delete}" process="@form" update=":form:tabela" />
<p:commandButton id="btnNao" value="Não" onclick="confirmation.hide();" type="button" />
</p:confirmDialog>
</h:form>
</div>
</div>
</h:body>
</html>
Bean
package br.com.beans;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import org.apache.log4j.Logger;
import org.primefaces.event.SelectEvent;
import org.primefaces.event.UnselectEvent;
import br.com.dao.ClientDao;
import br.com.dao.ClientDaoImpl;
import br.com.models.Client;
import br.com.utils.CheckCpf;
import br.com.utils.Utils;
@ManagedBean
@SessionScoped
public class ClientBean implements Serializable {
private static final long serialVersionUID = 1L;
private Logger logger = Logger.getLogger(getClass());
private Client client = new Client();
private List<Client> clients = new ArrayList<Client>();
private ClientDao dao = new ClientDaoImpl();
private Client selectClient = new Client();
private int totalClients;
private Map<String, String> stateList = new LinkedHashMap<String, String>();
public ClientBean() {
insertStates();
clients = dao.consultar();
setTotalClients(clients.size());
}
public void save() {
if(CheckCpf.checkCpf(client.getCpf())){
if(Utils.checkMail(client.getMail())){
dao.save(client);
client = new Client();
}else{
geraMsg("E-mail inválido");
}
}else{
geraMsg("Cpf inválido");
}
clients = dao.consultar();
setTotalClients(clients.size());
}
public void edit() {
if(CheckCpf.checkCpf(selectClient.getCpf())){
if(Utils.checkMail(selectClient.getMail())){
dao.save(selectClient);
geraMsg("Cliente alterado com sucesso");
}else{
geraMsg("E-mail inválido");
}
}else{
geraMsg("Cpf inválido");
}
clients = dao.consultar();
setTotalClients(clients.size());
}
public void delete() {
dao.delete(client);
clients = dao.consultar();
setTotalClients(clients.size());
geraMsg("Cliente excluido com sucesso");
}
public void insertStates(){
stateList.put("SP","SP");
stateList.put("AC","AC");
stateList.put("AL","AL");
stateList.put("AP","AP");
stateList.put("AM","AM");
stateList.put("BA","BA");
stateList.put("CE","CE");
stateList.put("DF","DF");
stateList.put("ES","ES");
stateList.put("GO","GO");
stateList.put("MA","MA");
stateList.put("MT","MT");
stateList.put("MS","MS");
stateList.put("MG","MG");
stateList.put("PA","PA");
stateList.put("PB","PB");
stateList.put("PR","PR");
stateList.put("PE","PE");
stateList.put("PI","PI");
stateList.put("RJ","RJ");
stateList.put("RN","RN");
stateList.put("RS","RS");
stateList.put("RO","RO");
stateList.put("RR","RR");
stateList.put("SC","SC");
stateList.put("SE","SE");
stateList.put("TO","TO");
}
public void onRowSelect(SelectEvent event) {
FacesMessage msg = new FacesMessage("Client Selected", ((Client) event.getObject()).getMail());
FacesContext.getCurrentInstance().addMessage(null, msg);
}
public void onRowUnselect(UnselectEvent event) {
FacesMessage msg = new FacesMessage("Client Unselected", ((Client) event.getObject()).getMail());
FacesContext.getCurrentInstance().addMessage(null, msg);
}
public Client getClient() {
return client;
}
public void setClient(Client client) {
this.client = client;
}
public List<Client> getClients() {
return clients;
}
public void setClients(List<Client> clients) {
this.clients = clients;
}
public int getTotalClients() {
return totalClients;
}
public void setTotalClients(int totalClients) {
this.totalClients = totalClients;
}
public Map<String, String> getStateList() {
return stateList;
}
public Client getSelectClient() {
return selectClient;
}
public void setSelectClient(Client selectClient) {
this.selectClient = selectClient;
}
public void setStateList(Map<String, String> stateList) {
this.stateList = stateList;
}
private void geraMsg(String mesagem) {
logger.info(mesagem);
FacesContext context = FacesContext.getCurrentInstance();
context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "Aviso:", mesagem));
}
}
Espero que alguém possa me ajudar.
Obrigado