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 :

(JSF,primefaces) faire apparaître un composant avec ajax


Sujet :

JSF Java

  1. #1
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2006
    Messages
    958
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 958
    Points : 213
    Points
    213
    Par défaut (JSF,primefaces) faire apparaître un composant avec ajax
    oui, je n'arrive pas à le faire.

    voici mes 2 fichiers :

    index.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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    <?xml version='1.0' encoding='UTF-8' ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml"
        xmlns:p="http://primefaces.prime.com.tr/ui"
        xmlns:h="http://java.sun.com/jsf/html"
        xmlns:f="http://java.sun.com/jsf/core">
        <h:head>
            <title>Facelet Title</title>
        </h:head>
        <h:body>
            <p:panel header="Hello From">
                <p:linkButton href="http://www.primefaces.org/labs" value="Prime Faces"/>
            </p:panel>
     
            <br/>
     
            <h:form id="form1">
     
                <h:commandButton id="cb1" value="cliquez-moi!">
                    <p:ajax actionListener="#{bean.magie}" update="form1:it1"/>
                </h:commandButton>
                <h:outputText id="it1" rendered="#{bean.ok}" value="ça marche"></h:outputText>
     
            </h:form>
     
     
     
        </h:body>
    </html>
    et Bean.java
    -----------------
    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
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
     
    package beans;
     
    import javax.inject.Named;
    import javax.enterprise.context.SessionScoped;
    import java.io.Serializable;
     
    /**
     *
     * @author lolveley
     */
    @Named(value="bean")
    @SessionScoped
    public class Bean implements Serializable{
     
        /** Creates a new instance of Bean */
        public Bean() {
            ok=false;
        }
     
        boolean ok;
     
        public boolean isOk() {
            return ok;
        }
     
        public void setOk(boolean ok) {
            this.ok = ok;
        }
     
     
        public String magie(){
     
            ok=true;
            return("");
     
        }

    pouvez-vous m'aider à faire ça?
    olivier

    ps : j'utilise netbeans avec JSF 2.0 et primefaces 2.1

  2. #2
    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 : 45
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Points : 7 275
    Points
    7 275
    Par défaut
    Bonjour,

    Jette un oeil sur ma réponse à un autre sujet, relativement proche de ton cas.

    En gros, tu ne peux pas rafraichir avec Ajax un élément qui n'existe initialement pas dans la page (car son rendered est à false). Il faut encapsuler cet élément dans un autre, qui existe toujours, puis rafrachir celui-ci. Ton code donnerait :

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <h:form id="form1">
        <h:commandButton id="cb1" value="cliquez-moi!">
            <p:ajax actionListener="#{bean.magie}" update="form1:it1"/>
        </h:commandButton>
        <h:panelGroup id="it1">
            <h:outputText rendered="#{bean.ok}" value="ça marche"/>
        </h:panelGroup>
    </h:form>
    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

  3. #3
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2006
    Messages
    958
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 958
    Points : 213
    Points
    213
    Par défaut
    salut,
    merci!

    eh bien ça ne marche pas.

    voici mon code:

    index.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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    <?xml version='1.0' encoding='UTF-8' ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml"
        xmlns:p="http://primefaces.prime.com.tr/ui"
          xmlns:h="http://java.sun.com/jsf/html">
        <h:head>
            <title>Facelet Title</title>
        </h:head>
        <h:body>
            <p:panel header="Hello From">
                <p:linkButton href="http://www.primefaces.org/labs" value="Prime Faces"/>
            </p:panel>
     
     
            <h:form id="form1">
                <h:commandButton id="cb1" value="cliquez-moi!">
                    <p:ajax actionListener="#{bean.magie}" update="form1:it1"/>
                </h:commandButton>
                <h:panelGroup id="it1">
                    <h:outputText rendered="#{bean.ok}" value="ça marche"/>
                </h:panelGroup>
            </h:form>
        </h:body>
    </html>
    à noter : j'ai un petite erreur dans le fichier xhtml : netbeans tique à propos de l'élément h:head fils de l'élément html.
    idem pour l'élément h:body.
    mais cela n'empêche pas d'afficher la page.

    d'où vient l'erreur?

    olivier.

  4. #4
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2006
    Messages
    958
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 958
    Points : 213
    Points
    213
    Par défaut
    ça marche!

    voici le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <h:form id="form1">
                <p:commandButton actionListener="#{bean.magie}" ajax="true" update="form1:it1"
                                 value="Click me" >
                </p:commandButton>
                <h:panelGroup id="it1">
                    <h:inputText rendered="#{bean.ok}" id="it2"/>
                </h:panelGroup>
            </h:form>
    merci pour votre aide!

    olivier

  5. #5
    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 : 45
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Points : 7 275
    Points
    7 275
    Par défaut
    Citation Envoyé par olivier57b Voir le message
    à noter : j'ai un petite erreur dans le fichier xhtml : netbeans tique à propos de l'élément h:head fils de l'élément html.
    idem pour l'élément h:body.
    mais cela n'empêche pas d'afficher la page.

    d'où vient l'erreur?
    <h:head> et <h:body> sont des balises intégrées à JSF 2. Peut-être que Netbeans ne les connait pas. Une mise à jour de NB pourrait résoudre ce problème, mais bon, ce n'est pas sûr (je n'utilise pas NB).
    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

Discussions similaires

  1. Réponses: 0
    Dernier message: 29/10/2010, 16h03
  2. Réponses: 0
    Dernier message: 08/12/2008, 15h10
  3. [AJAX] faire apparaître un composant
    Par argon dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 28/04/2008, 10h18
  4. faire apparaître un DIV avec bouton radio
    Par laurent2 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 19/07/2007, 15h00
  5. Réponses: 2
    Dernier message: 12/06/2006, 16h36

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