Je dois effectuer des calculs très longs.
Je souhaite afficher quand même la page avec les champs résultats (des outputText par exemple), et que le bean mette à jour ce champ tout seul quand il a fini ses calculs... Est-ce possible?
Merci
Je dois effectuer des calculs très longs.
Je souhaite afficher quand même la page avec les champs résultats (des outputText par exemple), et que le bean mette à jour ce champ tout seul quand il a fini ses calculs... Est-ce possible?
Merci
Bonjour,
Si tu utilises RichFaces, tu peux utiliser le composant <a4j:poll> qui va périodiquement interroger le serveur, et mettre à jour les champs calculés en conséquence...
Nous sommes tous semblables, alors acceptons nos différences !
--------------------------------------------------------------
Liens : Blog | Page DVP | Twitter
Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
Critiques : Apache Maven
ton message n'est pas claire !
si tu veut affiché le résultat de ta méthode qui fait le calcule par exemple dans un outputText alors:
La méthode que tu appel pour faire le calcul doive retourné un null pour rafraichir la page avec les nouvelle donné
Code : Sélectionner tout - Visualiser dans une fenêtre à part Résultat : <h:outputText value="#{TonBean.resultat}" />
En fait, la méthode appelée est très longue a exécuter, en attendant qu'elle se terline, je veux tout de même afficher le champ aevc une valeur par défaut, et quand la méthode a terminé, elle change elle même la valeur du champ.
Dans mon ancien projet, ce que nous faisions, c'était d'afficher, au moment du clic, une popup d'attente (avec un joli gif animé) qui se fermait une fois le traitement affiché.
Cela se réalise facilement avec un <a4j:commandButton/> et le onclick et oncomplete...
Nous sommes tous semblables, alors acceptons nos différences !
--------------------------------------------------------------
Liens : Blog | Page DVP | Twitter
Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
Critiques : Apache Maven
C'est une bonne idée aussi, mais ce que je veux c'est bloquer le moins possible l'affichage, à la rigueur, mettre le petit gif à la place des champs en cours de calcul, et remplacer ce gif par la valeur une fois le calcul terminé.
j'ai essayé ça, mais le champ ne se met pas à jour :
manager.allSize représente la taille d'une liste en cours de remplissage
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 <a4j:region> <h:form> <a4j:poll id="poll" interval="500" enabled="true" reRender="poll,grid" /> </h:form> </a4j:region> <h:form> <h:panelGrid columns="2" width="80%" id="grid"> <h:panelGrid columns="1"> <h:outputText value="Test #{manager.allSize}"> </h:outputText> </h:panelGrid> </h:panelGrid> </h:form>
sinon tu peux ajouter une variable boolean et à la fin des calcul tu modifie sa valeur
et tu as ajoute un rendered sur les champs que tu veux afficher à la fin des calculs..
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <a4j:commandButton actionListener="{bean.calculer}" reRender="area"/> <a4j:outputPanel id="area"> <h:inputText .. rendered="#{bean.finished}"/> </a4j:outputPanel>
Articles: Richfaces - JBosstools pour JSF.
Partager