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 :

changer visibility div depuis code java


Sujet :

JSF Java

  1. #1
    Membre régulier Avatar de psycho_xn
    Inscrit en
    Mars 2007
    Messages
    250
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 250
    Points : 96
    Points
    96
    Par défaut changer visibility div depuis code java
    salut,
    est-ce qu'il est possible de changer visibility de mon div depuis le code java dans mon bean , du moment qu'on peut récupérer le composant avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UIComponent monComponent = (UIComponent) FacesContext.getCurrentInstance().getViewRoot().findComponent("formCmd:frmPaie");
    ??
    merci bcp

  2. #2
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Salut,
    Non, tu ne peux pas récupérer un div avec le code que tu as montré, car un div est un élément HTML, et certaienement pas un composant JSF.

    Si tu utilises Facelets, gérer eclà serait simple :

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <div style="#{unBean.unChamp}">
    :
    :
    </div>

    Il te reste plus qu'à jouer sur le contenu du champ unChamp (String) dans ton maanged bean.

  3. #3
    Membre régulier Avatar de psycho_xn
    Inscrit en
    Mars 2007
    Messages
    250
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 250
    Points : 96
    Points
    96
    Par défaut
    je développe mon application en utilisant JSF + richFaces sous Netbeans, est-ce que je peux ajouter aussi Facelets ??

  4. #4
    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
    Points : 7 275
    Points
    7 275
    Par défaut
    Citation Envoyé par psycho_xn Voir le message
    je développe mon application en utilisant JSF + richFaces sous Netbeans, est-ce que je peux ajouter aussi Facelets ??
    Aucun problème !

    Sinon, tu peux créer ton div en utilisant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <h:form id="formCmd">
        ...
        <h:panelGroup layout="block" id="frmPaie">
            ...
    En effet, le panelGroup crée par défaut un <span>, sauf si on met layout="block", où il créera alors un <div>...
    Ceci te permettra alors de récupérer ton DIV dans le Java via la ligne que tu as montrée...

  5. #5
    Membre régulier Avatar de psycho_xn
    Inscrit en
    Mars 2007
    Messages
    250
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 250
    Points : 96
    Points
    96
    Par défaut
    Citation Envoyé par romaintaz Voir le message
    Aucun problème !
    En effet, le panelGroup crée par défaut un <span>, sauf si on met layout="block", où il créera alors un <div>...
    Ceci te permettra alors de récupérer ton DIV dans le Java via la ligne que tu as montrée...
    et après la récupération comment faire pour changer sa propriété de visibility ??

  6. #6
    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
    Points : 7 275
    Points
    7 275
    Par défaut
    Tu peux faire ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monDiv.setStyle("visibility: hidden;");
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monDiv.setStyle("visibility: block;");
    voire carrément jouer avec le setRendered(booléen), mais là, le DIV ne sera pas du tout ajouté dans le code HTML de la page...

  7. #7
    Membre régulier Avatar de psycho_xn
    Inscrit en
    Mars 2007
    Messages
    250
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 250
    Points : 96
    Points
    96
    Par défaut
    si je récupère mon div avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UIComponent monDiv = (UIComponent) FacesContext.getCurrentInstance().getViewRoot().findComponent("formCmd:frmPaie");
    monDiv.setStyle("visibility: hidden;");
    y a pas de setStyle

  8. #8
    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
    Points : 7 275
    Points
    7 275
    Par défaut
    Normal.
    Tu castes vers un UIComponent, qui est la classe de base de tout composant JSF.
    Il te faut caster vers un HtmlPanelGroup...

  9. #9
    Membre régulier Avatar de psycho_xn
    Inscrit en
    Mars 2007
    Messages
    250
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 250
    Points : 96
    Points
    96
    Par défaut
    j'ai essayé le truc avec un exemple simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <h:form  id="formCmd">
        <h:commandLink action="#{commande_bean.cacher}" value="---"/>   
        <h:panelGroup id="frmPaie" >
            Total : <h:inputText size="12" id="txtTotal" value="#{commande_bean.total}"/> 
         </h:panelGroup>
    </h:form>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public String cacher(){
            HtmlPanelGroup monDiv = (HtmlPanelGroup) FacesContext.getCurrentInstance().getViewRoot().findComponent("formCmd:frmPaie");
            monDiv.setStyle("visibility: hidden");
            return "ok";
        }
    mais ça donne rien la visibility de mon panelGroup ne change pas

  10. #10
    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
    Points : 7 275
    Points
    7 275
    Par défaut
    Déjà, j'avais dit de mettre layout="block"... Mais bon, je ne pense pas que cela change beaucoup de choses...

    Maintenant, si tu n'as pas besoin de faire un aller-retour serveur (en gros si tu veux juste que le div soit caché lors du clic), tu peux faire ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <h:form id="formCmd">
        <h:commandLink value="---" onclick="document.getElementById('formCmd:frmPaie').style.visibility='hidden'; return false;"/>
        <h:panelGroup layout="block" id="frmPaie">
            ...
        </h:panelGroup>
    </h:form>

  11. #11
    Membre régulier Avatar de psycho_xn
    Inscrit en
    Mars 2007
    Messages
    250
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 250
    Points : 96
    Points
    96
    Par défaut
    justement je doit faire un allé retour au serveur.

    mais c'est bon j'ai réglé mon pb en faisant appel en même temps à ma fonction bean et ma fonction JS , une solution d'ailleurs dans un autre topic

    merci bcp, elles sont toujours très instructives vos directives

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 26/08/2010, 13h25
  2. Backup d'une BDD depuis code java
    Par zuzuu dans le forum JDBC
    Réponses: 0
    Dernier message: 11/03/2009, 12h02
  3. Génération automatique de fichier xml d'une BDD depuis code java ?
    Par zuzuu dans le forum Persistance des données
    Réponses: 0
    Dernier message: 11/03/2009, 09h09
  4. [InitParams] Peut-on y accéder depuis le code java?
    Par ArseNic dans le forum XMLRAD
    Réponses: 2
    Dernier message: 16/05/2007, 15h23
  5. Réponses: 3
    Dernier message: 31/07/2006, 15h07

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