--Environnement - CentOS Linux release 7.8.2003 (Core) - Eclipse IDE for Enterprise Java Developers.Version: 2020-03 (4.15.0) - openjdk version "11.0.7" 2020-04-14 LTS - JSF 2.3.9
*. Les balises «html» et «next.xhtml» sont omises. Utilisez window.confirm pour la boîte de dialogue de confirmation.
base.xhtml
<h:head>
<title>Pour la Qiita de Ponsuke</title>
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<h:outputScript library="js" name="base.js"/>
</h:head>
<h:body>
<h3>C'est l'écran A</h3>
<h:form id="formId">
<div>
<h:commandButton value="Transition d'écran"
onclick="return confirmMessage();"
action="#{sampleBean.showNextPage()}" />
</div>
</h:form>
</h:body>
base.js
/**
*Afficher une boîte de dialogue de confirmation.
* @return {boolean}Résultat de la sélection dans la boîte de dialogue de confirmation true:Appuyez sur le bouton OK.
*/
function confirmMessage() {
return window.confirm('Puis-je changer d'écran?');
}
SampleBean.java
package brans;
import javax.faces.view.ViewScoped;
import javax.inject.Named;
@Named
@ViewScoped
public class SampleBean implements Serializable {
/** serialVersionUID. */
private static final long serialVersionUID = -6782548672735889274L;
/**
*Afficher la page suivante.
* @retour Page suivante.
*/
public String showNextPage() {
return "next.xhtml";
}
}
Je retourne
dans base.js, donc c'est bien, non? J'échoue souvent parce que je pense.
Le processus d'attribut d'action est exécuté quel que soit le résultat de la boîte de dialogue de confirmation.
Je veux que quelqu'un explique la raison ...
base.xhtml
<!--réduction-->
<h:commandButton value="Transition d'écran"
onclick="confirmMessage();"
action="#{sampleBean.showNextPage()}" />
<!--réduction-->
Une écriture comme celle-ci fonctionne bien pour chaque bouton
<h:commandButton value="Transition d'écran"
onclick="return window.confirm('Puis-je changer d'écran?');"
action="#{sampleBean.showNextPage()}" />
Recommended Posts