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 :

Affichage conditionné par la valeur d'un checkbox


Sujet :

JSF Java

  1. #1
    Membre confirmé

    Inscrit en
    Juin 2005
    Messages
    1 155
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 1 155
    Points : 475
    Points
    475
    Par défaut Affichage conditionné par la valeur d'un checkbox
    Hello les gens,
    Je souhaiterais afficher/cacher des données en fonction de la valeur d'une case à cocher sans submiter mon form.
    Je m'y prend comme suit mais sans grand succès:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <h:form>
        <h:selectBooleanCheckbox id="checkboxId" value="#{login.register}" >
            <p:ajax event="change" update="panelId" />
        </h:selectBooleanCheckbox>
     
        <h:panelGrid id="panelId">
            <h:outputLabel rendered="#{login.register}" >quelque chose</h:outputLabel>
            <h:outputText rendered="#{login.register}" value="quelque chose" />
        </h:panelGrid>
    </h:form>
    Or je ne perçois aucun changement lorsque je clique sur mon checkbox. Qu'est ce qui clôche avec mon code ?

    Merci pour toutes vos contributions.

  2. #2
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2009
    Messages : 153
    Points : 105
    Points
    105
    Par défaut
    le problème se trouve ici:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <p:ajax event="change" update="panelId" />
    utilise plutot ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <p:ajax event="valueChange" update="panelId" />

  3. #3
    Membre confirmé

    Inscrit en
    Juin 2005
    Messages
    1 155
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 1 155
    Points : 475
    Points
    475
    Par défaut
    le problème se trouve ici:
    hmm... non ça n'était pas ça visiblement. Le code en question se situe au niveau de la page d'authentification en fait. Le même code copié/collé sur une autre vue marche correctement. Le bean Login est déclaré @ManagedBean @RequestScoped
    Je ne voudrais pas passer par du javascript bête et méchant. Comment dois-je m'y prendre dans ce cas ?

  4. #4
    Membre confirmé

    Inscrit en
    Juin 2005
    Messages
    1 155
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 1 155
    Points : 475
    Points
    475
    Par défaut
    Mon problème trouve sa source il me semble au niveau de l'architecture de l'appli.
    Je m'explique: JSF n'est "pas disponible" lors de l'appel à la vue sur laquelle apparait le formulaire d'authentification et avant l'affichage de celle-ci. En effet l'appli. déléguè l'authentification au framework apache shiro.
    Voici un extrait de mon web.xml pour illustrer tout cela:
    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
     
    ...
    <context-param>
    		<param-name>shiroConfigLocations</param-name>
    		<param-value>WEB-INF/config/shiro.ini</param-value>
    	</context-param>
    	<listener>
    		<listener-class>org.apache.shiro.web.env.EnvironmentLoaderListener</listener-class>
    	</listener>
    	<filter>
    		<filter-name>ShiroFilter</filter-name>
    		<filter-class>org.apache.shiro.web.servlet.ShiroFilter</filter-class>
    	</filter>
    	<filter-mapping>
    		<filter-name>ShiroFilter</filter-name>
    		<url-pattern>/*</url-pattern>
    		<dispatcher>REQUEST</dispatcher>
    		<dispatcher>FORWARD</dispatcher>
    		<dispatcher>INCLUDE</dispatcher>
    		<dispatcher>ERROR</dispatcher>
    	</filter-mapping>
    ...
    <servlet>
    		<servlet-name>Faces Servlet</servlet-name>
    		<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    		<load-on-startup>1</load-on-startup>
    	</servlet>
    ...
    <servlet-mapping>
    		<servlet-name>Faces Servlet</servlet-name>
    		<url-pattern>*.xhtml</url-pattern>
    	</servlet-mapping>
    ...
    et un extrait du fichier de config shiro.ini
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    ...
    [urls]
    /login.xhtml = user
    /images/** = anon
    /** = user
    ...
    La question est donc (et elle est peut être mal formulée) comment faire pour que le cycle de vie de jsf soit exécuté aussi lors de l'appel à la vue d'authentification ?

  5. #5
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Points : 2 061
    Points
    2 061
    Par défaut
    bonjour,
    Citation Envoyé par jadey Voir le message
    La question est donc (et elle est peut être mal formulée) comment faire pour que le cycle de vie de jsf soit exécuté aussi lors de l'appel à la vue d'authentification ?
    J'ai fait quelque essais avec chiro et l'intégration de celui ci avec JEE n'est pas simple !
    Mais lors de me recherche de l'époque j'étais tombé sur un article fort intéressant : Apache Shiro, is it ready for Java EE 6?

    je pense que les articles suivant (contenu dans l'article du lien ci dessus) pourront t'aider :


    Les autres sont aussi a lire, mais ces deux la seront plus en rapport avec ton problème !
    Il n'y a pas de problème, il n'y a que des solutions.
    Cependant, comme le disaient les shadoks, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
    Si toutefois le problème persiste, la seule solution restante est de changer le périphérique qui se trouve entre la chaise et l'écran

    Mes Articles : Mon premier article est sur le language D
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre confirmé

    Inscrit en
    Juin 2005
    Messages
    1 155
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 1 155
    Points : 475
    Points
    475
    Par défaut
    C'est exactement grâce aux liens que tu cites (plus 2 ou 3 autres) que je suis arrivé à correctement paramétrer le bouzin et non je ne trouve pas l'intégration avec JSF aussi difficile malheureusement j'ai beau relire tout je ne trouve pas grand chose qui puisse m'aiguiller. Y'a aussi ça: http://stackoverflow.com/questions/1...primefaces-3-4 qui décris un problème similaire.
    Edit: J'abandonne ce post et j'essayerai d'en ouvrir un qui aborde et traite du problème en lui même et non de ses conséquences, merci à tous.

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

Discussions similaires

  1. MAJ dans une table conditionnée par la valeur d'un de ses champs
    Par NicolasTT dans le forum Développement de jobs
    Réponses: 2
    Dernier message: 24/03/2011, 15h31
  2. Réponses: 1
    Dernier message: 23/10/2009, 18h49
  3. Réponses: 5
    Dernier message: 30/04/2009, 16h23
  4. Réponses: 28
    Dernier message: 21/07/2008, 11h32
  5. Réponses: 7
    Dernier message: 24/07/2006, 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