2010-06-28 8 views
0

Je travaille sur une page jsp en utilisant richfaces. Ma page actuelle a plusieurs feilds et un bouton d'ajout et de réinitialisation. Le bouton de réinitialisation fonctionne correctement, appelant une méthode dans mon backingbean qui annule les champs appropriés sur la page et réinitialise d'autres valeurs assorties. Le problème est avec mon bouton d'ajout.Problème de réinitialisation de la page jsp

Le bouton d'ajout appelle une méthode qui valide les valeurs entrées par l'utilisateur. Lorsque la validation est terminée, une nouvelle entrée est ajoutée à une liste au bas de la page et la méthode de réinitialisation utilisée par le bouton de réinitialisation est appelée pour réinitialiser la page afin qu'une autre entrée puisse être entrée. Tout fonctionne sauf dans un cas, en validant les informations saisies je veux confirmer quelque chose de l'utilisateur. Je montre à l'utilisateur un modalpanel avec une option de confirmation et une option d'annulation.

Voici où je commence à avoir des problèmes. Mon bouton de confirmation appelle une méthode dans mon backingbean qui définit certaines valeurs, puis rappelle ma méthode add. Je sais que ce n'est pas élégant mais je ne pourrais pas trouver une meilleure solution. Maintenant, lorsque la méthode add a fini d'exécuter, la méthode de réinitialisation est appelée et rien ne se passe sur ma page. Si je clique sur le bouton de réinitialisation, la page est réinitialisée et une entrée est ajoutée à la liste.
Je ne comprends pas pourquoi la page est réinitialisée dans tous les cas, sauf lorsque je montre le panneau modal. Toute aide est appréciée.

Quelques morceaux de code:

page JSP:

<h:commandButton value="Add" style="font-size:10pt;font-weight:bold" action="#controller.add}" binding="#{controller.addButton}"/> 
<h:commandButton value="Reset" action="#{controller.reset}" style="font-size:10pt;font-weight:bold"/> 

panneau modal (partie de la page JSP)

<a:commandButton id="confirm" action="#{controller.proceed}" styleClass="confirmIconButton" value="Yes, proceed" />&nbsp;&nbsp; 
    <r:componentControl for="confirmUnchangedExpected" attachTo="confirm" operation="hide" event="onclick"/> 

haricot support:

public String add() { 
    ... 
    if (somethinghappend) getPanel().setRendered(true); 
    ... 
    list.add(entry); 
    reset(); 
    return ""; 
} 

public String reset() { 
    // resets the feilds on the page 
    return ""; 
} 

public String proceed() { 
    //change values so something does not happen 
    add(); 
    return ""; 
} 

Répondre

0

J'ai donc trouvé la solution à mon p roblem en mettant rerender sur mon bouton de confrim sur le modalPanel. Je l'ai réglé pour redécouvrir toute la page qui affiche maintenant correctement les valeurs de réinitialisation.

Questions connexes