The problem's that the dialog appear, but it doesn't show data, only inputText empty.
I have been reading the oldest post that the users have been writting here, but the solutions it doesn´t work for me.
This is the code of the table
Code: Select all
<p:dataTable id="clientesTable" paginator="true" value="#{ClienteBean.clienteList}" var="row"
rows="10" paginatorPosition="bottom"
paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink}"
emptyMessage="No hay datos cargados..">
<p:column>
<f:facet name="header">
<h:outputText value="Nombre"/>
</f:facet>
<h:outputText value="#{row.nombre} #{row.apellido}"/>
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Eliminar"/>
</f:facet>
<p:commandButton styleClass="button_table_size" image="button_delete_icon" onclick="confirmation.show()">
<f:setPropertyActionListener value="#{row}" target="#{ClienteBean.selectedCliente}"/>
</p:commandButton>
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Editar"/>
</f:facet>
<p:commandButton update="datosAEditar" image="button_edit_icon" styleClass="button_table_size"
oncomplete="editDialog.show()">
<f:setPropertyActionListener value="#{row}" target="#{ClienteBean.selectedCliente}"/>
</p:commandButton>
</p:column>
</p:dataTable>
Code: Select all
<p:dialog header="Editar Usuario" widgetVar="editDialog" closable="true"
showEffect="slide" hideEffect="fold" modal="true">
<p:outputPanel id="datosAEditar" rendered="#{not empty ClienteBean.selectedCliente}">
<h:panelGrid columns="2" >
<h:outputText value="Nombre:"/><h:inputText value="#{ClienteBean.selectedCliente.nombre}"/>
<h:outputText value="Apellido:"/><h:inputText value="#{ClienteBean.selectedCliente.apellido}"/>
<h:outputText value="Dni:"/><h:inputText value="#{ClienteBean.selectedCliente.dni}"/>
<h:outputText value="Telefono:"/><h:inputText value="#{ClienteBean.selectedCliente.telefono}"/>
<h:outputText value="Mail:"/><h:outputText value="#{ClienteBean.selectedCliente.mail}"/>
<h:selectBooleanCheckbox value="#{ClienteBean.selectedCliente.estudiante}"/><h:outputText value="Estudiante?"/>
<p:commandButton styleClass="button" value="Aceptar" actionListener="#{ClienteBean.editCliente}"
update="clientesTable, messages" oncomplete="editDialog.hide()"/>
<p:commandButton styleClass="button" value="Cancelar" onclick="editDialog.hide()"/>
</h:panelGrid>
</p:outputPanel>
</p:dialog>
This is my bean..
Code: Select all
@ManagedBean(name="ClienteBean")
@SessionScoped
public class ClienteBean implements Serializable{
//Atributos
private Cliente cliente= new Cliente();
private Cliente selectedCliente= new Cliente();
private String infoAction="";
//Constructores
public ClienteBean(){}
//Getters y Setters
public Cliente getCliente() {
return cliente;
}
public void setCliente(Cliente cliente) {
this.cliente = cliente;
}
public Cliente getSelectedCliente() {
return selectedCliente;
}
public void setSelectedCliente(Cliente selectedCliente) {
this.selectedCliente = selectedCliente;
}
public String getInfoAction() {
return infoAction;
}
public void setInfoAction(String infoAction) {
this.infoAction = infoAction;
}
public List<Cliente> getClienteList(){
List<Cliente> clientes=new ArrayList<Cliente>();
clientes= GenericDAO.getList(Cliente.class);
return clientes;
}
//Mtodos propios
public void saveCliente(){
FacesContext currentContext= FacesContext.getCurrentInstance();
if (!DataValidator.isEmail(cliente.getMail().trim()))
{ // Si no es un email valido
setInfoAction("Por favor ingrese un E-Mail válido.");
currentContext.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR,"Error", infoAction));
}
try
{ // Intentamos guardar el cliente
Transaction t = GenericDAO.createTransaction();
GenericDAO.merge(cliente);
GenericDAO.commit(t);
//Limpio los datos del cliente para ingresar otro
clean();
// Si salio todo bien
setInfoAction("Cliente cargado exitosamente.");
currentContext.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO,"Exito", infoAction));
}
catch (org.hibernate.exception.ConstraintViolationException e)
{ // DNI 0 CUIT repetido
e.printStackTrace();
setInfoAction("DNI/CUIT repetido.");
currentContext.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR,"Error", infoAction));
}
catch (Exception e)
{ // Otro error
e.printStackTrace();
setInfoAction("Error al tratar de conectarse con el servidor. \n" +
"Por favor, verifique si el servidor esta encendido \n" +
"o si existen problemas con la red.");
currentContext.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_FATAL,"Error", infoAction));
}
}
public void clean(){
cliente=new Cliente();
}
public void deleteSelectedCliente(ActionEvent evt){
Transaction t= GenericDAO.createTransaction();
GenericDAO.delete(selectedCliente);
t.commit();
FacesContext context= FacesContext.getCurrentInstance();
infoAction="El cliente se borro satisfactoriamente.";
context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "Exito: ", infoAction));
}
public void editCliente(ActionEvent evt){
Transaction t= GenericDAO.createTransaction();
GenericDAO.saveOrUpdate(selectedCliente);
t.commit();
FacesContext context= FacesContext.getCurrentInstance();
infoAction="El cliente se edito satisfactoriamente.";
context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "Exito: ", infoAction));
}
}