J'essaye de coder une modale pour permettre à l'utilisateur de confirmer la suppression d'entités en vain.
Voici le code volontairement simplifié :
1) la commande que j'exécute pour préparer la suppression des entités et pour afficher la modale :
2) la modale en question :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <h:form> <a4j:commandButton value="a4j:commandButton" action="#{contractDeletor.prepareJob}" reRender="deleteContractsConfirmModalPanelId" ajaxSingle="true" oncomplete="Richfaces.showModalPanel('deleteContractsConfirmModalPanelId',{width:400, top:200})" /> </h:form> <a4j:include viewId="/ContractDeletionModal.xhtml" rendered="true" />
3) et enfin l'action correspondante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 <rich:modalPanel id="deleteContractsConfirmModalPanelId" autosized="true"> <div id="deleteContractsConfirmModalPanelDivId"> <form id="deleteContractsConfirmModalPanelForm"> <a4j:commandButton value="a4j:commandButton" action="#{contractDeletor.doJob}" oncomplete="Richfaces.hideModalPanel('deleteContractsConfirmModalPanelId');" reRender="deleteContractsConfirmModalPanelDivId" /></form> </div> </rich:modalPanel>
L'action #{contractDeletor.prepareJob} est bien exécutée, la modale s'affiche correctement au retour de l'action mais quand je clique sur le bouton de la modale il se produit un postback et l'action #{contractDeletor.doJob} n'est pas exécutée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 @Name("contractDeletor") public class ContractDeletor extends BaseListAnimator implements Serializable { private static final long serialVersionUID = -1465053605583307302L; public String prepareJob() { log.info("Prepare the job"); return null; } public String doJob() { log.info("Do the job"); return null; } }
J'ai essayé de tout mettre dans une même vue (commande et modale) mais ça ne marche pas mieux.
C'est probablement couillon mais je ne vois pas.
Merci d'avance
Partager