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 :

Envoyer paramètre commandButton


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Chacha35
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2009
    Messages
    264
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 264
    Par défaut Envoyer paramètre commandButton
    Bonjour,

    Mon Bean est en RequestScope et j'aimerai passer un paramètre à mon bean lorsque je clique sur mon bouton.

    Je me mélange un peu avec : <input type="hidden", binding, <f:param, actionListener...

    J'ai tenté ça mais ça ne marche pas. En fait je ne vois pas mon print:

    model:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <input type="hidden" name="id" value="#{al.id}" />
              <h:commandButton value="OK"   action="#{MyManagedBean.doChange}"/>
    controller:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public String doChange() {
    System.out.println("doChange");
    Long selectedId = Long.parseLong(FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("id").toString());
    merci d'avance pour votre aide

  2. #2
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    tu peux utiliser f:param

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <f:param name="nameParam" value="valueParam" />
    Ce paramètre est inclus dans la request.

    Sinon

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <f:setPropertyActionListener value="#{bean.sourceValue}" target="#{bean.targetValue}" />

  3. #3
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Par défaut
    Si tu dis que tu ne vois même pas ton print, peut être que tu as une erreur qui apparait durant le cycle de vie de JSF.
    Ajoute un <h:messages/> dans le corps de ta page, pour faire afficher les éventuelles erreurs.
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

  4. #4
    Membre éclairé Avatar de Chacha35
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2009
    Messages
    264
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 264
    Par défaut
    Merci pour vos réponses.

    J'ai essayé le param en suivant ce qui est dit dans le dernier message de ce sujet ICI

    Mais j'ai une erreur:

    binding="#{MyManagedBean.selectedAlimentId}": The class 'fr.univmed.jeecourse.jsfexample.controller.AlimentController' does not have the property 'selectedAlimentId'.

    Alors que j'ai bien dans mon AlimentController:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private UIParameter selectedAlimentId;

  5. #5
    Membre éclairé Avatar de Chacha35
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2009
    Messages
    264
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 264
    Par défaut
    Bon j'ai fini par choisir attribute, mais toujours pas de print visible.

    model:

    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
    <h:form>
        <h:dataTable value="#{MyManagedBean.alimentList}" var="al" border="1">
    .......
            <h:column>
                <f:facet name="header">
                    <h:outputText value="Modification"/>
                </f:facet>
                <h:inputText value="#{MyManagedBean.change} "/>
            </h:column>
     
          <h:column>
                <f:facet name="header">
                    <h:outputText value="Envoyer"/>
                </f:facet>
     
              <h:commandButton value="OK"   actionListener="#{MyManagedBean.doChange}">
                  <f:attribute name="idAliment" value="#{al.id}" />
              </h:commandButton>
          </h:column>
     
        </h:dataTable>
            <h:commandButton value="Cr&eacute;er un nouvel aliment" action="#{MyManagedBean.doNew}"/>
            <h:commandButton value="Mainview" action="#{MyManagedBean.doReturnToMainView}"/>
        </h:form>
        <h:messages/>

    controller:

    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
    40
    41
    42
    43
    @ManagedBean(name="MyManagedBean")
    @RequestScoped
     
    public class AlimentController {
     
        @EJB
        private AlimentEJB alimentEJB;
        private Aliment aliment = new Aliment();
        private Integer change = null ;
     
    ............
     
         public String doChange(ActionEvent event) {
             System.out.println("doChange");
     
            Long selectedId = Long.parseLong(event.getComponent().getAttributes().get("idAliment").toString());
            if(change==0)
            {
                alimentEJB.deleteAliment(selectedId);
            }
            else{
                alimentEJB.changeAliment(selectedId,this.change);
            }
            alimentList = alimentEJB.findAllAliments();
            return "listAliments.xhtml";
        }
     
        public Aliment getAliment() {
            return aliment;
        }
     
        public void setAliment(Aliment aliment) {
            this.aliment = aliment;
        }
     
        public Integer getChange() {
            return change;
        }
     
        public void setChange(Integer change) {
            this.change = change;
        }
    }
    EJB:

    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
    @Stateless
    public class AlimentEJB {
     
        @PersistenceContext(unitName = "jsfExamplePU")
        private EntityManager em;
    ........
        public void deleteAliment(Long id)
        {
           Query query = em.createNamedQuery("deleteAliment").setParameter("id", id);
           query.toString();
        }
     
        public void changeAliment(Long id, Integer change)
        {
           Query query = em.createNamedQuery("changeAliment").setParameter("id", id).setParameter("change", change);
           query.toString();
        }
    }

  6. #6
    Membre éclairé Avatar de Chacha35
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2009
    Messages
    264
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 264
    Par défaut
    J'ai trouvé!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <h:commandButton value="OK" action="#{MyManagedBean.doChange}">
              </h:commandButton>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     public String doChange() {
             Aliment temp = (Aliment) FacesContext
            .getCurrentInstance().getExternalContext().getRequestMap().get("al");

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

Discussions similaires

  1. Envoyer paramètre vers un autre gui
    Par lawlou dans le forum Interfaces Graphiques
    Réponses: 1
    Dernier message: 30/05/2015, 16h43
  2. Problème envoyer paramètres d'une JSP vers une autre
    Par toufik135 dans le forum Taglibs
    Réponses: 1
    Dernier message: 29/12/2014, 05h27
  3. Envoyer paramétre à une vue
    Par Overcrash dans le forum ASP.NET MVC
    Réponses: 1
    Dernier message: 17/09/2013, 17h53
  4. Envoyer paramètre (liste d'ID) depuis PHP
    Par Bankimoon dans le forum iReport
    Réponses: 7
    Dernier message: 12/07/2013, 11h23
  5. Réponses: 3
    Dernier message: 17/04/2012, 21h54

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