IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JSF Java Discussion :

passage de paramètre d'une page à une autre


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Décembre 2009
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 44
    Par défaut passage de paramètre d'une page à une autre
    Bonjour

    je suis entrain de concevoir une interface d'historique article en utilisant une table jsf woodstock...

    cette table jsf représente certains champs de ma table de base de données.

    sur ma table jsf j'ai rajouté un champ contenant un lien hypertexte que j'ai baptisé "Détails". donc ce que je veux c'est que qu'on je clique sur ce lien la page de détails de l'article choisi s'affiche avec l'ensemble de ses informations....

    aprés une brève recherche, j'ai compris qu'il faut faire appel à faces-config pour déclarer la séquence de page à lancer... en voici un aperçu :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    <navigation-rule>
    <from-view-id>/Page5.jsp</from-view-id>
    <navigation-case>
    <from-action>#{Page5.lien1_action}</from-action>
    <from-outcome>success</from-outcome>
    <to-view-id>/Page6.jsp</to-view-id>
    </navigation-case>
    </navigation-rule>
    sur la page5 j'ai la méthode qui transcrit l'événement de clique sur le lien hypertexte, la voici :

    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
    32
    33
    34
    35
    36
    37
    38
    39
     
     
     public String lien1_action() throws NamingException, NamingException, NamingException, SQLException, ClassNotFoundException {
            // TODO: Replace with your code
            try {
                RowKey rk = tableRowGroup1.getRowKey();
                if (rk != null) {
           int id =  Integer.parseInt(registerDataProvider.getValue("id", rk).toString());
           FacesContext context = FacesContext.getCurrentInstance();
                    Register register=null;
    		Connection connection = ConnectionManager.getInstance().getConnection();
    		Statement statement = connection.createStatement();
    		ResultSet resultSet=statement.executeQuery("SELECT * FROM register WHERE id=\""+id+"\"");
    		if(resultSet.next())
    		{
    			register=new Register(resultSet.getInt("id"),resultSet.getString("firstName"),resultSet.getString("lastName"),resultSet.getString("userName"),resultSet.getString("password"),resultSet.getString("profil"),resultSet.getString("email"),resultSet.getInt("contactNo"),resultSet.getString("address"),resultSet.getString("country"),resultSet.getString("state"));
                            register.setId(resultSet.getInt("id"));
                            register.setFirstName(resultSet.getString("firstName"));
                            register.setLastName(resultSet.getString("lastName"));
                            register.setUserName(resultSet.getString("userName"));
                            register.setPassword(resultSet.getString("password"));
                            register.setProfil(resultSet.getString("profil"));
                            register.setEmail(resultSet.getString("email"));
                            register.setContactNo(resultSet.getInt("contactNo"));
                            register.setAddress(resultSet.getString("address"));
                            register.setCountry(resultSet.getString("country"));
                            register.setState(resultSet.getString("state"));
    		}
    		resultSet.close();
    		statement.close();
                    }
            } catch (Exception ex) {
                log("ErrorDescription", ex);
                error(ex.getMessage());
            }
     
    		return "success";
     
        }
    et dans la page de détails c-a-d la page6, je remplis directement les champs dans la méthode prereder() voici le code :

    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
     
     
     public void prerender() {
     
             Register register = null;
     FacesContext context = FacesContext.getCurrentInstance().getExternalContext().getResource(test.Register);
    System.out.println(register.getId());  // affichage de test
            id.setText(register.getId());
            firstName.setText(register.getFirstName());
        lastName.setText(register.getLastName());
        userName.setText(register.getUserName());
        password.setText(register.getPassword());
        profil.setText(register.getProfil());
        email.setText(register.getEmail());
        contactNo.setText(register.getContactNo());
        address.setText(register.getAddress());
        country.setText(register.getCountry());
        state.setText(register.getState());
     
        }
    le problème c'est qu'il y'a rien qui s'affiche sur la page de détails....


    je vous remércie à l'avance pour votre aide.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    191
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 191
    Par défaut
    Ton dataTable est lié à quel type d'objet?

    Voici un petit lien qui pourrait t'aider.

  3. #3
    Membre averti
    Inscrit en
    Décembre 2009
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 44
    Par défaut
    Citation Envoyé par scorplayer Voir le message
    Ton dataTable est lié à quel type d'objet?

    Voici un petit lien qui pourrait t'aider.
    Merci pour la réponse

    En fait je parviens trés bien à récuperer les valeurs de mon datatable, mon souci est comment passer ces données à une autre page ???

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    191
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 191
    Par défaut
    Sorry

    Dans le constructeur de ton managed Bean (celui qui contient ta méthode lien1_action):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    FacesContext facesContext = FacesContext.getCurrentInstance();
            managedBeanDestinataire = (TypeManagedBeanDestinataire) facesContext.getApplication().getELResolver().getValue(facesContext.getELContext(), null, "nomManagedBeanDestinataire");
    Et pour transmettre ton objet, dans la méthode lien1_action, tu rajoutes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    managedBeanDestinataire.setObject(tonObjet)
    Tu n'as plus qu'à définir une méthode public 'setObject' dans ton managed bean destinataire.

    C'est ça que tu cherchais?

  5. #5
    Membre averti
    Inscrit en
    Décembre 2009
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 44
    Par défaut
    Citation Envoyé par scorplayer Voir le message
    Sorry

    Dans le constructeur de ton managed Bean (celui qui contient ta méthode lien1_action):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    FacesContext facesContext = FacesContext.getCurrentInstance();
            managedBeanDestinataire = (TypeManagedBeanDestinataire) facesContext.getApplication().getELResolver().getValue(facesContext.getELContext(), null, "nomManagedBeanDestinataire");
    Et pour transmettre ton objet, dans la méthode lien1_action, tu rajoutes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    managedBeanDestinataire.setObject(tonObjet)
    Tu n'as plus qu'à définir une méthode public 'setObject' dans ton managed bean destinataire.

    C'est ça que tu cherchais?
    Bonjour cher ami

    je suis navré de te dire que j'ai beau essayé mais ça ne marche pas ..........

    si c'est possible d'eclaircir un peu plus j'en serai reconnaissant.....

    Dans d'autres exemples j'ai trouvé qu'ils utilisent juste le fichier faces-config, mais ça ne marche pas pour moi

  6. #6
    Membre averti
    Inscrit en
    Décembre 2009
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 44
    Par défaut
    pour faire suite à mes investigations, j'ai meme fais en sorte que la méthode lien1_action() retourne un objet de la classe Register, sur la deuxième page je ne sais pas comment le récuperer !!!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] pour affecter une page à une Page Master
    Par zerkos dans le forum VB.NET
    Réponses: 0
    Dernier message: 06/07/2012, 10h45
  2. Passage de paramètre d'une page à une autre
    Par SonnyFab dans le forum ASP.NET
    Réponses: 4
    Dernier message: 17/06/2010, 17h10
  3. Réponses: 9
    Dernier message: 15/04/2009, 15h09
  4. Réponses: 3
    Dernier message: 17/08/2007, 12h45
  5. Réponses: 6
    Dernier message: 29/09/2006, 10h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo