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 2.0] faire apparaître et disparaître des composants


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 : 50
    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 2.0] faire apparaître et disparaître des composants
    salut,

    quelqu'un pourrait-il me donner le code d'une appli minimale exploitant un framework JSF (primefaces ou autre) at permettant de faire apparaître et disparaître une textBox lors de l'appui sur le bouton "faire apparaître" et "faire disparaître"?
    il faut je crois passer par ajax.

    merci,

    olivier

  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
    Points : 5 059
    Points
    5 059
    Par défaut
    c'est simple en utilisant ajax, avec Richfaces par exemple avec l'attribut rendered des composants JSF.

    C'est aussi possible du CSS, en utilisant display block ou none..

    tu trouvera des exemples dans les tutoriels ou dans le forum..

  3. #3
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    puisque vous cliquez sur un bouton, l'ajax n'est même pas nécessaire. tout ce qu'il faut c'est
    -> que le bouton soit relié en immediate="true" à une action JSF qui change la valeur d'un boolean dans le bean
    -> d'avoir l'attribut "rendered" du composant qui se base sur le champ boolean en question (rendered="#{leBean.doitAfficherLePanneau}")

  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 : 50
    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
    merci,

    en fait le truc que je voudrais exactement est que j'ai une combobox, avec des valeurs prédéfinies et que si je choisis une de ces valeurs j'ai des infos complémentaires que s'affichent dans deux textBoxes à côté.

    alors, ajax ou pas?

    après, je me mets à coder

    olivier

    ps: l'attribut rendered est pour JSF ou particulier à richfaces?

  5. #5
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    JSF.

    Si tu ne veux pas rafraichir systématiquement toute la page -> ajax.
    Mais l'effet final est réalisable avec ou sans ajax sans soucis.

  6. #6
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2006
    Messages
    958
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    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,

    au risque d'être un peu lours, est-ce que je pourrais avoir un exemple de code?
    ça me permettrait d'y voir + clair!

    olivier

  7. #7
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2006
    Messages
    958
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    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
    avec ajax

  8. #8
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2006
    Messages
    958
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    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
    pour me mettre à ajax, j'ai essayé un petit exemple, mais il ne marche pas :

    le fichier 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
     
    package java;
     
    import javax.faces.bean.ManagedBean;
     
    @ManagedBean(name="bean")
    public class Bean {
     
        private String text;
     
        public String getText() {
            return text;
        }
     
        public void setText(String text) {
            this.text = text;
        }
     
        public Bean() {
            super();
            // TODO Auto-generated constructor stub
        }
     
    }
    et la page JSF de test:

    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
     
    <!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:ui="http://java.sun.com/jsf/facelets"
    	xmlns:h="http://java.sun.com/jsf/html"
    	xmlns:f="http://java.sun.com/jsf/core">
     
    <h:body>
    	<f:view>
    	<h:form id="form1">
    	<h:panelGrid id="pg1">
    	<h1>hello</h1>
    	<br/>
    	<h:inputText id="ipt1" value="#{bean.text}">
    		<f:ajax event="keyup" render="texte"></f:ajax>
    	</h:inputText>
    	<br></br>
    	<h:outputText id="texte" value="#{bean.text}"></h:outputText>
    	</h:panelGrid>
    	</h:form>
    	</f:view>
    </h:body>
     
    </html>
    ça doit théoriquement copier ce qu'on entre dans la balise inputText vers la balise outputText.

    mais ça ne marche pas : si j'entre du texte rien n'est copié et si j'appuie sur entrée, j'ai un message me disant que le bean "bean" est inconnu.

    olivier.

  9. #9
    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
    Points : 5 059
    Points
    5 059
    Par défaut
    Citation Envoyé par olivier57b Voir le message
    pour me mettre à ajax, j'ai essayé un petit exemple, mais il ne marche pas :
    l'évènement c'est onkeyup

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <f:ajax event="onkeyup" render="texte"></f:ajax>

  10. #10
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2006
    Messages
    958
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    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
    j'obtiens ce message d'erreur:



    javax.servlet.ServletException: /index.xhtml @16,42 <f:ajax> 'onkeyup' is not a supported event for HtmlInputText. Please specify one of these supported event names: blur, change, click, dblclick, focus, keydown, keypress, keyup, mousedown, mousemove, mouseout, mouseover, mouseup, select, valueChange.
    javax.faces.webapp.FacesServlet.service(FacesServlet.java:325)

    avec ce 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
    21
    22
    23
    24
    25
    26
     
    <!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:ui="http://java.sun.com/jsf/facelets"
    	xmlns:h="http://java.sun.com/jsf/html"
    	xmlns:f="http://java.sun.com/jsf/core">
     
    <h:body>
    	<f:view>
    	<h:form id="form1">
    	<h:panelGrid id="pg1">
    	<h1>hello</h1>
    	<br/>
    	<h:inputText id="ipt1" value="#{bean.text}">
    		<f:ajax event="onkeyup" render="texte"></f:ajax>
    	</h:inputText>
    	<br></br>
    	<h:outputText id="texte" value="#{bean.text}"></h:outputText>
    	</h:panelGrid>
    	</h:form>
    	</f:view>
    </h:body>
     
    </html>
    moi j'y connais pas grand chose mais il semblerait que tu t'es trompé!

    olivier

  11. #11
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2006
    Messages
    958
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    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
    ... à moins que ça soit pour richfaces.
    j'éspère pas

  12. #12
    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
    Points : 5 059
    Points
    5 059
    Par défaut
    Citation Envoyé par olivier57b Voir le message
    ... à moins que ça soit pour richfaces.
    j'espère pas
    En effet oui .. tu as raison ..

    ton bean est dans quel scope du coup??

  13. #13
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2006
    Messages
    958
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    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
    ben je ne sais pas : j'ai utilisé une annotation donc il utilise pour le scope la valeur par défaut.
    session?
    le problème viendrait de là?

  14. #14
    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
    Points : 5 059
    Points
    5 059
    Par défaut
    Citation Envoyé par olivier57b Voir le message
    ben je ne sais pas : j'ai utilisé une annotation donc il utilise pour le scope la valeur par défaut.
    session?
    le problème viendrait de là?
    Par défaut ça doit être request..essaye avec l'annotation ViewScoped

  15. #15
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2006
    Messages
    958
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    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
    j'ai essayé d' ajouter l'annotation mais rien n'y fait : la textBox est bien affichée mais il n'y a rien à côté et si je tape du texte dedans rien ne se passe (à côté je veux dire, car dans la textBox le texte s'affiche quand même )

    j'y comprends rien

  16. #16
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    met ton texte dans une outputpanel et fait le rerender de l'outputpanel. Le texte n'est pas associé à un conteneur div ou span -> impossible de le rafraichir.

  17. #17
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2006
    Messages
    958
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    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
    euh... je ne trouve pas de balise h:outputPanel.
    c'est du richfaces?

    olivier

  18. #18
    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
    Points : 5 059
    Points
    5 059
    Par défaut
    panelGroup par exemple, tu as l'idée ..tu peux t'en inspirer n'attend pas une réponse que tu copier/colle dans ton IDE directement..

  19. #19
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2006
    Messages
    958
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    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
    avec ce 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
    21
    22
    23
    24
    25
    26
    27
    28
     
    <!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:ui="http://java.sun.com/jsf/facelets"
    	xmlns:h="http://java.sun.com/jsf/html"
    	xmlns:f="http://java.sun.com/jsf/core">
     
    <h:body>
    	<f:view>
    		<h:form id="form1">
     
    			<h1>hello</h1>
    			<br />
    			<h:inputText id="ipt1" value="#{bean.text}">
    				<f:ajax event="keyup" render="pg2"></f:ajax>
    			</h:inputText>
    			<br></br>
    			<h:panelGroup id="pg2">
    				<h:outputText id="texte" value="#{bean.text}"></h:outputText>
    			</h:panelGroup>
     
    		</h:form>
    	</f:view>
    </h:body>
     
    </html>
    j'obtiens l'affichage du texte (hello) mais de rien d'autre...
    j'essaie mais je dois reconnaître que pour l'instant je fais chou blanc

  20. #20
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2006
    Messages
    958
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    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 en utilisant netbeans, avec le même code.
    la faute à mojarra (la version JSF2.0 dispo sur eclipse)?

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 13/06/2015, 17h08
  2. Liste Déroulante - faire apparaître et disparaître des éléments
    Par crush911 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 05/10/2011, 08h11
  3. Réponses: 0
    Dernier message: 29/10/2010, 16h03
  4. Faire apparaître la table des matières dans la table des matières
    Par choupinetto dans le forum Mise en forme
    Réponses: 2
    Dernier message: 03/10/2007, 17h40
  5. Faire apparaître la liste des tableaux et des figures dans la TDM
    Par Aline2611 dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 7
    Dernier message: 07/06/2007, 15h11

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