我对话有问题,这是我的add.xhtml: 当我点击“Envoyer demande”时,我在对话框中显示确认消息“Demande d'inscriptionenvoyée”,但点击按钮“Envoyer demande”后对话框消失。
这里是add.xhtm:
<h:form>
<h:commandLink value="Créer un compte" onclick="dlg3.show();return false;"/>
</h:form>
<p:dialog id="modalDialoog" widgetVar="dlg3" draggable="false" resizable="false"
dynamic="true" header="Inscription">
<center>
<p:panel id="xyzBody">
<h:form id="inscri-f">
<h:panelGrid id="loginPan" columns="2" bgcolor="White">
<h:outputText value="Nom d'utilisateur :" />
<p:inputText id="username" value="#{demandeBean.login}"></p:inputText>
<h:outputText value="Mot de passe :" />
<p:password id="pwd" value="#{demandeBean.pwd}"/>
<h:commandButton value="Envoyer demande" update=":inscri-f:cr"
actionListener="#{demandeBean.envoi_dde}"></h:commandButton>
<h:commandButton value="Retour" action="page1?faces-redirect=true"></h:commandButton>
<p:outputPanel id="cr">
<h:outputText rendered="#{demandeBean.saved}" value="#{demandeBean.message}"/>
</p:outputPanel>
</h:panelGrid>
</h:form>
</p:panel>
</center>
</p:dialog>
我的addBean.java:
@ViewScoped
public class DemandeBean implements Serializable{
private static final long serialVersionUID = 1L;
DdeDAO ndao = new DdeDaoImpl();
private String login;
private String pwd;
private String message = "";
private boolean saved = false;
//getters and setters of all attributes
public void envoi_dde(){
Demande d = new Demande();
d.setNom_ut(this.login);
d.setPwd(this.pwd);
ndao.nouvelle_dde(d);
saved = true;
this.setMessage("Demande d'inscription envoyée");
}
点击“Envoyer demande”按钮后,我希望对话框不会消失。
答案 0 :(得分:2)
1)将h:commandButton更改为p:commandButton 2)将p:commandButton的ajax属性设置为true
这必须完美地运作