bonjour,

Je cherche s'il est possible de rafraichir un element d'une page JSF. J'ai un page qui permet d'envoyer les données d'une base de données 1 vers une base de données 2. Cette page contient un élément selectManyListbox où l'utilisateur choisit ce qu'il souhaite tranferer. A la fin du transfert j'affiche un message pour indiquer que l'opération est terminée.

Mon problème c'est que la page n'est pas rafraichie et que la liste contient tout les éléments alors que je voudrais quelle ne contienne que les élement non transferrée ou qu'elle soit vide suite au transfert.

Pour afficher le message j'utilise la méthode suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
msgError = bundle.getString("synchronization_successful");
            FacesContext.getCurrentInstance().addMessage(null,
                    new FacesMessage(FacesMessage.SEVERITY_INFO, msgError, msgError));
et je retourne null. C'est a cause de mon null que la liste n'est pas rafraichi mais je ne sait pas comment je peux faire pour 1 avoir mon message (ou pas de message si le transfert n'a pas encore au lieu) en sachant que l'on peut acceder a cette page par plusieurs moyen (difficile de gérer un boolean en session) et 2. rafraichir le contenu de ma liste.

Voici le code de ma liste:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
<h:selectManyListbox id="listSynchronization" styleClass="bigListbox" value="#{Synchronization.toSynchronizeSelected}">
                                        <f:selectItems value="#{Synchronization.toSynchronize}"/>
                                    </h:selectManyListbox>
Voici mes accesseurs/mutateurs
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
20
21
22
23
24
25
26
27
28
29
30
31
 
public String[] getToSynchronizeSelected() {
        getSessionBean().setSelectedItemToSynchronize(null);
        return toSynchronizeSelected;
    }
 
    public void setToSynchronizeSelected(final String[] l) {
        this.toSynchronizeSelected = l;
    }
 
    public SelectItem[] getToSynchronize() {
        final SelectItem[] groupOptions = loadGroupOptions();
        final SelectItem[] userOptions = loadUserOptions();
 
        final SelectItemGroup groups = new SelectItemGroup();
        groups.setLabel(bundle.getString("synchronization_groups"));
        groups.setSelectItems(groupOptions);
 
        final SelectItemGroup users = new SelectItemGroup();
        users.setLabel(bundle.getString("synchronization_users"));
        users.setSelectItems(userOptions);
 
        toSynchronize = new SelectItem[]{groups, users};
        toSynchronizeSelected = getSessionBean().getSelectedItemToSynchronize();
 
        return toSynchronize;
    }
 
    public void setToSynchronize(final SelectItem[] dol) {
        this.toSynchronize = dol;
    }
Merci pour votre aide