我正在使用jsf 2.2,并且在进行修改时我试图重置对话框的值。我创建了一个按钮重置,我调用了一个方法" annuler"重置实体的值,但ID不起作用。
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:p="http://primefaces.org/ui"
xmlns:f="http://xmlns.jcp.org/jsf/core">
<h:head>
<title>La liste des utilisateurs</title>
</h:head>
<h:body>
<h:form id="form">
<p:messages id="messages" showDetail="true" autoUpdate="true" closable="true" />
<p:dataTable id="tab" value="#{utilisateurBean.listUtilisateur}" var="utl" styleClass="ui-panelgrid-blank"
widgetVar="table" emptyMessage="aucun utilisateur trouvé"
paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {Exporters}"
paginator="true" rows="15" style="margin-bottom:20px"
>
<f:facet name="{Exporters}">
<h:commandLink>
<p:graphicImage value="/ressources/images/excel.png" width="24"/>
<p:dataExporter type="xls" target="tab" fileName="Liste des utilisateurs" />
</h:commandLink>
</f:facet>
<f:facet name="header">La liste des utilisateurs</f:facet>
<p:column headerText="Matricule utilisateur" filterBy="#{utl.matriculeUtilisateur}" filterMatchMode="contains">
<f:facet name="header">
</f:facet>
<h:outputText value="#{utl.matriculeUtilisateur}" />
</p:column>
<p:column headerText="Mot de passe">
<h:outputText value="#{utl.mpUtilisateur}" />
</p:column>
<p:column headerText="Nom">
<h:outputText value="#{utl.nomUtilisateur}" />
</p:column>
<p:column headerText="Prénom">
<h:outputText value="#{utl.prenomUtilisateur}" />
</p:column>
<p:column headerText="Type Utilisateur">
<h:outputText value="#{utl.typeUtilisateur}" />
</p:column>
<p:column headerText="Action" width="20%">
<p:commandButton value="Modifier" update=":form:grid" process="@this"
onclick="PF('dlg').show();">
<f:setPropertyActionListener value="#{utl}"
target="#{utilisateurBean.utilsateur}" />
</p:commandButton>
<p:commandButton value="Supprimer" process="@this"
action="#{utilisateurBean.supprimer()}" update="tab">
<p:confirm header="Confirmation" message="Etes vous sure?"
icon="ui-icon-alert" />
<f:setPropertyActionListener value="#{utl}"
target="#{utilisateurBean.utilsateur}" />
</p:commandButton>
</p:column>
</p:dataTable>
<p:dialog widgetVar="dlg" modal="true" resizable="false"
closable="true">
<h:panelGrid id="grid" columns="3" cellpadding="5" layout="grid"
styleClass="ui-panelgrid-blank" >
<p:outputLabel for="matriculeUtilisateur" value="Matricule Utilisateur: "
style="font-weight:bold" />
<p:inputText id="matriculeUtilisateur" placeholder="Matricule Utilisateur" disabled="true"
value="#{utilisateurBean.utilsateur.matriculeUtilisateur}" required="true" requiredMessage="Veuillez remplir le champ">
<f:validateLength maximum="50" minimum="3" />
<p:clientValidator event="change" />
<p:ajax event="blur" update="button" process="@form"/>
</p:inputText>
<p:message for="matriculeUtilisateur" />
<p:outputLabel for="nomUtilisateur" value="Nom de l'utilisateur: "
style="font-weight:bold" />
<p:inputText id="nomUtilisateur" placeholder="Nom de l'utilisateur" validatorMessage="Entrer un champ valide"
value="#{utilisateurBean.utilsateur.nomUtilisateur}" required="true" requiredMessage="Veuillez remplir le champ">
<f:validateRegex pattern="^[a-zA-Z ]*$" />
<f:validateLength maximum="20" minimum="3" />
<p:clientValidator event="change" />
<p:ajax event="blur" update="button" process="@form"/>
</p:inputText>
<p:message for="nomUtilisateur" />
<p:outputLabel for="prenomUtilisateur" value="Prénom de l'utilisateur: "
style="font-weight:bold" />
<p:inputText id="prenomUtilisateur" placeholder="Nom de l'utilisateur" validatorMessage="Entrer un champ valide"
value="#{utilisateurBean.utilsateur.prenomUtilisateur}" required="true" requiredMessage="Veuillez remplir le champ">
<f:validateRegex pattern="^[a-zA-Z ]*$" />
<f:validateLength maximum="20" minimum="3" />
<p:clientValidator event="change" />
<p:ajax event="blur" update="button" process="@form"/>
</p:inputText>
<p:message for="prenomUtilisateur" />
<h:outputText for="mp" value="Mot de passe: *" style="font-weight:bold"/>
<p:inputText id="mp" validatorMessage="Entrer un champ valide"
value="#{utilisateurBean.utilsateur.mpUtilisateur}" required="true" requiredMessage="Veuillez remplir le champ">
<p:clientValidator event="change" />
<p:ajax event="blur" update="button" process="@form"/>
</p:inputText>
<p:message for="mp" />
<p:outputLabel for="console" value="Type de l'utilisateur:" style="font-weight:bold"/>
<p:selectOneMenu id="console" value="#{utilisateurBean.utilsateur.typeUtilisateur}" style="width:125px" required="true">
<f:selectItem itemLabel="Collaborateur" itemValue="Collaborateur" />
<p:clientValidator event="change" />
<p:ajax event="blur" update="button" process="@form"/>
</p:selectOneMenu>
</h:panelGrid>
<h:panelGrid id="panel" columns="2">
<p:commandButton update="form" value="Sauvegarder" disabled="#{not facesContext.postback or facesContext.validationFailed}"
id="button" actionListener="#{utilisateurBean.save()}"
style="background:#6FDC6F;color: #FFFFFF"
styleClass="customStyleButton"
>
<p:confirm header="Confirmation" message="Êtes-vous sûr ?"
icon="ui-icon-alert" />
<p:confirmDialog global="true" showEffect="fade" hideEffect="fade">
<p:commandButton value="Oui" type="button"
styleClass="ui-confirmdialog-yes" icon="ui-icon-check" />
<p:commandButton value="Non" type="button"
styleClass="ui-confirmdialog-no" icon="ui-icon-close" />
</p:confirmDialog>
</p:commandButton>
<p:commandButton value="Modifier" action="#{utilisateurBean.ajoutUtilisateur()}" update="tab"
onclick="PF('dlg').hide();" rendered="#{utilisateurBean.clickEdit()}" >
<p:confirm header="Confirmation" message="Êtes-vous sûr?"
icon="ui-icon-alert" />
</p:commandButton>
<p:commandButton value="Reset Code" update="tab" process="@form:tab" actionListener="#{utilisateurBean.annuler()}" style="background:#FF3232;color: #FFFFFF" styleClass="customStyleButton" />
</h:panelGrid>
</p:dialog>
</h:form>
</h:body>
</html>
package com.sopra_hr.GestionRemboursement.beans;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import org.apache.log4j.Logger;
import org.primefaces.context.RequestContext;
import com.sopra_hr.GestionRemboursement.entities.Assure;
import com.sopra_hr.GestionRemboursement.entities.Utilisateur;
import com.sopra_hr.GestionRemboursement.services.AssureService;
import com.sopra_hr.GestionRemboursement.services.UtilisateurService;
import com.sopra_hr.GestionRemboursement.services.imp.AssureServiceImp;
import com.sopra_hr.GestionRemboursement.services.imp.UtilisateurServiceImp;
@ManagedBean
@ViewScoped
public class UtilisateurBean implements Serializable {
public static Logger log = Logger.getLogger(UtilisateurBean.class);
private Utilisateur utilsateur = new Utilisateur();
private UtilisateurService utilisateurService = new UtilisateurServiceImp();
private AssureService assureService = new AssureServiceImp();
private List<Utilisateur> listUtilisateur = new ArrayList<Utilisateur>();
private List<Assure> listAssure = new ArrayList<Assure>();
private boolean btnAdd, btnEdit,btnRemove,dataList;
private boolean read;
private String msg;
private Assure assure = new Assure();
@PostConstruct
public void init(){
btnRemove=true;
assure = new Assure();
listAssure.add(assure);
}
public void clickAdd() {
btnAdd = true;
btnEdit = false;
utilsateur = new Utilisateur();
read = false;
msg = "ajout avec succes";
}
public void clickEdit() {
btnAdd = false;
btnEdit = true;
read = true;
msg = "Modification avec succes";
}
public void addAssure() {
assure = new Assure();
listAssure.add(assure);
if(listAssure.size()>1){
btnRemove=false;
}else{
btnRemove=true;
}
}
public void removeAssure() {
listAssure.remove(listAssure.size() - 1);
if(listAssure.size()>1){
btnRemove=false;
}else{
btnRemove=true;
}
}
public void sendName(String name) {
assure.setNomAssure(name);
}
public void sendLastName(String name) {
assure.setPrenomAssure(name);
}
public void ajouterUtilisateur() {
try {
boolean var = utilisateurService.enregistrer(utilsateur);
if (var) {
for (Assure assure : listAssure) {
assure.setUtilisateur(utilsateur);
assureService.save(assure);
}
utilsateur = new Utilisateur();
listAssure = new ArrayList<Assure>();
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Utilisateur ajouté avec succes"));
} else {
FacesContext.getCurrentInstance().addMessage(null,
new FacesMessage(FacesMessage.SEVERITY_WARN, "Utilisateur existant!", ""));
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
FacesContext.getCurrentInstance().addMessage(null,
new FacesMessage(FacesMessage.SEVERITY_FATAL, "Erreur", ""));
}
}
public void save() {
ajoutUtilisateur();
}
public void ajoutUtilisateur() {
try {
utilisateurService.save(utilsateur);
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "", msg));
} catch (Exception e) {
FacesContext.getCurrentInstance().addMessage(null,
new FacesMessage(FacesMessage.SEVERITY_ERROR, "", "Erreur d'insertion"));
e.printStackTrace();
}
}
public void supprimer() {
try {
utilisateurService.delete(utilsateur);
FacesContext.getCurrentInstance().addMessage(null,
new FacesMessage(FacesMessage.SEVERITY_INFO, "", "Suppression avec succes"));
} catch (Exception e) {
FacesContext.getCurrentInstance().addMessage(null,
new FacesMessage(FacesMessage.SEVERITY_ERROR, "", "Erreur de suppression"));
e.printStackTrace();
}
}
public void annuler() {
utilsateur = new Utilisateur();
}
public Utilisateur getUtilsateur() {
return utilsateur;
}
public void setUtilsateur(Utilisateur utilsateur) {
this.utilsateur = utilsateur;
}
public List<Utilisateur> getListUtilisateur() {
try {
listUtilisateur = utilisateurService.findAll();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return listUtilisateur;
}
public void setListUtilisateur(List<Utilisateur> listUtilisateur) {
this.listUtilisateur = listUtilisateur;
}
public List<Assure> getListAssure() {
if(!listAssure.isEmpty()){
dataList=true;
}
return listAssure;
}
public void setListAssure(List<Assure> listAssure) {
this.listAssure = listAssure;
}
public Assure getAssure() {
return assure;
}
public void setAssure(Assure assure) {
this.assure = assure;
}
public boolean isBtnRemove() {
return btnRemove;
}
public void setBtnRemove(boolean btnRemove) {
this.btnRemove = btnRemove;
}
public boolean isDataList() {
return dataList;
}
public void setDataList(boolean dataList) {
this.dataList = dataList;
}
}