Bonjour,

je possède deux pages qui contiennent chacune un formulaire et permettent d'afficher une liste de résultats sur base des données rentrées dans le formulaire.

Pour celà, j'ai deux beans : Form1 et Form2. Tous les deux sont ViewScoped.

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
 
@ManagedBean
@ViewScoped
public class Form1
{
      private String nom;
      private String prix;
 
      private List<String> resultats;
 
     public void onRowDblClckSelect(final SelectEvent event)
    {
        try
        {
            Form2 form2 = new Form2();
            form2.setNom("test");
 
            FacesContext.getCurrentInstance().getExternalContext().getApplicationMap().put("form2",form2);
            FacesContext.getCurrentInstance().getExternalContext().redirect("/page2.xhtml");
 
 
        }
        catch (IOException e)
        {
            e.printStackTrace();
        }
    }
}

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
@ManagedBean
@ViewScoped
public class Form2
{
      private String nom;
      private String adresse;
      private int age;
 
      private List<String> resultats;
}
Je souhaiterai que, lorsqu'on double clique sur une ligne de résultat dans le première écran, l'application ouvre le deuxième écran avec certains critères pré-remplies (notamment le nom).
J'ai essayé en utilisant l'instruction getApplicationMap().put mais le critère Nom n'est pas initialisé (je pense que c'est du au fait que mon bean est ViewScoped).

Etant nouveau en développement JSF, pourriez-vous me conseiller sur la bonne pratique à utiliser pour ce genre de manipulation?

Merci.