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 :

récupérer l'id envoyé par bean


Sujet :

JSF Java

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2012
    Messages : 6
    Par défaut récupérer l'id envoyé par bean
    Bonjour,

    J'aimerais afficher une datatable contenant une liste d'agents sélectionnables, puis après validation, je veux récupérer l'id de l'agent sélectionné.

    voici mon code, pour la page jsf
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <h:dataTable value="#{agentController.items}" var="item" id="datalist" >
    <h:column>
    <h:commandLink action="#{agentController.view(list.id)}" >
    <div class="afficheritem">
    <h:outputText value="#{item.nom} " style="font-size: 18px;font-weight : bold; text-decoration: none;" />
    <br/>
    <h:outputText style="color:black;font-style: normal; " value="#{list.email}"/>
     
    </div>
    </h:commandLink>
    </h:column>
     
                            </h:dataTable>
    pour le bean j'ai ajouté la fonction suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public String view(String value) throws IOException, JAXBException {
     
            FacesContext context;
                  context = FacesContext.getCurrentInstance();
                  Map map = context.getExternalContext().getRequestParameterMap();
                  String title1; 
                  title1 = (String) map.get("title");
     
            return "ViewAgent.xhtml?faces-redirect=true";
        }
    pour le bean de la page "Viewagent.xhtml" , je sais pas comment faire pour récupérer l'id.

    Quelqu'un saurait-il m'indiquer comment faire ?

    Merci d'avance pour votre aide.

  2. #2
    Membre confirmé Avatar de samaury
    Homme Profil pro
    Chevalier Jedi
    Inscrit en
    Mars 2008
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Chevalier Jedi
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2008
    Messages : 114
    Par défaut
    Bonjour
    Je ferai comme suit :
    1 - Dans ton .xhtml
    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
     
    <h:dataTable value="#{agentController.items}" var="item" id="datalist" >
     <h:column>
       <h:commandLink action="#{agentController.view(list.id)}" >
        <div class="afficheritem">
    <h:outputText value="#{item.nom} " style="font-size: 18px;font-weight : bold; text-decoration: none;" />
    <br/>
    <h:outputText style="color:black;font-style: normal; " value="#{list.email}"/>
     
    </div>
    <f:setPropertyActionListener value="#{item}" target="#{agentController.selectedAgent}" />
    </h:commandLink>
    </h:column>
     
    </h:dataTable>
    2 - Dans ton controleur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    private LeBonType selectedAgent;
    public void setSelectedAgent(){
      //....Code du setter
    }
    public LeBonType getSelectedAgent(){
      //....Code du getter
    }

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2012
    Messages : 6
    Par défaut récupérer l'id envoyé par bean
    je veux savoir comment récupérer l'id dans le bean de l'autre page "ViewAgent".

    et merci

  4. #4
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 36
    Par défaut
    Bonjour, pour ce cas de figure et si tu veux faire les trucs de cette manière tu peux utiliser le Flash Scope:
    la méthode view devient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public String view(String value) throws IOException, JAXBException {
     
            FacesContext context;
                  context = FacesContext.getCurrentInstance();
                 context.getExternalContext().getFlash().put("unkey",value);
            return "ViewAgent.xhtml?faces-redirect=true";
      }
    et au chargement de la page viewAgent.xhtml il faut exécuter une méthode qui reprend l'id et le range dans un bean que tu va utiliser.
    Une des manières de faire:
    -Dans le de viewAgent.xhtml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <f:metadata>
            <f:event type="preRenderView" listener="#{viewBean.initMethode}"/>            
        </f:metadata>
    -et dans ViewBean.java:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public void  initMethode(){
    String id= (String)FacesContext.getCurrentInstance().getExternalContext().getFlash().get("unkey" );
    // le ranger quelque part.
     
     
    }
    NB: il faut récupérer l'id du flash dans ce cycle jsf. Sinon il sera pas disponible dans le prochain request.

  5. #5
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2012
    Messages : 6
    Par défaut récupérer l'id envoyé par bean
    bon si on fait une petite récapitulation :
    dans la page jsf, je met
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
                           <h:dataTable value="#{agentController.items}" var="item" id="datalist" >
    <h:column>
    <h:commandLink action="#{agentController.view(item.idAgent)}" >
    <div class="afficheritem">
    <h:outputText value="#{item.nom} " style="font-size: 18px;color:blueviolet;font-weight : bold; text-decoration: none;" />
    <br/>
     
     
    </div>
            <f:setPropertyActionListener value="#{item}" target="#{agentController.selectedAgent}" />
    </h:commandLink>
    </h:column>
     
                            </h:dataTable>
    et pour le bean
    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
     public String view(String value) throws IOException, JAXBException {
     
            FacesContext context;
                  context = FacesContext.getCurrentInstance();
                 context.getExternalContext().getFlash().put("unkey",value);
            return "ViewAgent.xhtml?faces-redirect=true";
      }
     
    private List selectedAgent;
     
        public void setSelectedAgent(List selectedAgent){
     
            this.selectedAgent=selectedAgent;
        }
     
    public List getSelectedAgent(){
            return selectedAgent;
     
    }
    après pour la page ViewAgent.xhtml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <f:metadata>
            <f:event type="preRenderView" listener="#{ViewBean.initMethode}"/>            
                        </f:metadata>
    et pour son bean "ViewBean" je met la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public String  initMethode(){
     
                String id= (String)FacesContext.getCurrentInstance().getExternalContext().getFlash().get("unkey" );
     
                return id;
            }
    Mais une autre erreur apparait que Cannot convert jpa.entities.Agent[ idAgent=1e ] of type class jpa.entities.Agent to interface java.util.List
    Help.

Discussions similaires

  1. Récupérer les données envoyées par une tablette graphique
    Par greg08 dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 02/06/2010, 06h04
  2. [AJAX] récupérer une valeur envoyé par ajax
    Par ineskh dans le forum AJAX
    Réponses: 3
    Dernier message: 08/02/2010, 20h12
  3. Réponses: 7
    Dernier message: 09/03/2009, 20h12
  4. Récupérer le message envoyé par un port série
    Par christophe étudiant dans le forum WinDev
    Réponses: 1
    Dernier message: 14/05/2008, 17h35
  5. Récupérer la valeur envoyée par la fonction shell
    Par cestimagik dans le forum Général VBA
    Réponses: 3
    Dernier message: 05/01/2007, 19h43

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