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 utilisation de when


Sujet :

JSF Java

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2007
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 25
    Points : 15
    Points
    15
    Par défaut jsf utilisation de when
    bonjour,
    je suis debutant avec jsf, je dois faire une appli pour un projet scolaire et je bute sur un problème.

    Le voici : je voudrais une page jsp avec les balise jsf qui utilise des lib de la jstl exemple c:when je dispose d'une classe user

    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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
     
    public class UserController {
     
        private User user = new User();
     
        private String name = null;
        private String login = null;
        private String password;
        private String country;
        private int age;
        private String firstName;
        private String Email;
        private String sexe;
        private String role;
        private boolean isLog;
     
        /** Creates a new instance of UserController */
     
     
        public String getName() {
            return name;
        }
     
        public void setName(String name) {
            this.name = name;
        }
     
        public String getLogin() {
            return login;
        }
     
        public void setLogin(String login) {
            this.login = login;
        }
     
        public String getPassword() {
            return password;
        }
     
        public void setPassword(String password) {
            this.password = password;
        }
     
          public void setIsLog(boolean isLog) {
            this.isLog = isLog;
        }
        public List getListUser(){
            return user.getListUser();
       }
     
        public  String   authentificate(){
     
            String login = getLogin();
            String password = getPassword();
            String result = null;
            setIsLog(user.authentificate(login,password));
            if (getIsLog() ==true){   
                setVariableSession("login",login); 
                result ="t";
                getRole();
     
            }
            return result;
        }
     }
    je voudrais donc a partir de cette bean et faire un test sur la vaiable de isLogin qui est une variable boolean si elle true j'affiche le nom et le prenom du user si elle false j'affiche le formulaire voici le code que j'ai écrit et qui ne fonctionne pas

    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
     
    <%@ taglib uri="http://java.sun.com/jsf/html" prefix="html" %>
    <%@ taglib uri="http://java.sun.com/jsf/core" prefix="core" %>
    <%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
    <%@ page import="controller.*"%>
     
     
    <core:view>  
         <c:choose>
     
             <c:when test="#{UserController.isLog == true}">
                     <html:outputText id="toto" value="#{UserController.firstName}" />
             </c:when>
             <c:otherwise>                 
                 <html:form id="addUser">
                     <html:panelGrid columns="3"> 
                         <html:outputLabel value="Identifiant" for="login" />
                         <html:outputLabel  value="Mot de passe" for="userpassword" />                   
                         <html:outputLabel/> 
                         <html:inputText id="login" value="#{UserController.login}" size="13" required="true" />
                         <html:inputText id="userpassword" value="#{UserController.password}" size="13" required="true" />
                         <html:commandButton style="submit1" id="add"   action="#{UserController.authentificate}" value="Go" />
                     </html:panelGrid> 
                 </html:form>
             </c:otherwise>
         </c:choose>
     
    </core:view>
    mon bean est declarer dans mon faces-config
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     <managed-bean>
        <managed-bean-name>UserController</managed-bean-name>
        <managed-bean-class>controller.UserController</managed-bean-class>
        <managed-bean-scope>session</managed-bean-scope>
      </managed-bean>
    voila toutes les données, merci de m'apporter des solution qui pourraient m'aider.

  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
    merci de m'apporter des solution qui pourraient m'aider.
    ! Mais pour quel problème ? j'ai relu ton post à plusieurs reprises et je ne trouve nulle part une quelconque mention à un problème !
    Pour espérer avoir des solutions, faut d'abord commencer par exposer son problème !

    Sinon, puisque tu nous laisses dans le noir, je vais essayer de deviner ...
    Voila, ma boule de cristal me dit que ton problème vient du fait que les balises de JSTL ne fonctionnent pas .... C'est ça ? Si c'est le cas, c'est un problème très courant et vient d'une incompatibilité entre le cycle de vie des composants JSF et l'exécution des tags JSP dans les implémentation de JSF 1.1.
    La bonne nouvelle est qu'il est très facile de contourner les if et les while, en passant par la propriété rendered disponible pratiquement dans tous les composants JSF !

    Pour expliquer, voici un exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <c:when test="#{UserController.isLog == true}">
                     <html:outputText id="toto" value="#{UserController.firstName}" />
             </c:when>
    devient
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <html:outputText id="toto" value="#{UserController.firstName}" rendered="#{UserController.log}"/>
    et le otherwise est remplacé par .... rendered="#{!condition}" .

    Autre chose : On accède aux propriétés par leur nom logique et pas par le nom de getter ....
    donc, on ne fait pas unBean.isValeur mais plutôt unBean.valeur !

    Une dernière chose :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%@ page import="controller.*"%>
    n'a absolument rien à faire dans ta page ! C'est du JSF : on accède aux managed beans qui sont déclarés ! on ne fai pas d'import et compagnie.

    Voilà ! Si ma boule de cristal me joue des tours, éclaires ma lanterne s'il te plaît !

  3. #3
    Membre à l'essai
    Inscrit en
    Juin 2007
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 25
    Points : 15
    Points
    15
    Par défaut
    salut Modjo merci pour t'a reponse aussi rapide je suis désolé si j'ai mal exprimé mon problème, mai s je te rassure tu a bien compris tu devrai ouvrir une boite de voyance.

    Je vais faire l'essaie ce soir et je te tiens au courant.

    Pour ce qui concerne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%@ page import="controller.*"%>
    , je sui d'accord j'ai pas fait attention je l'avais mis pour faire des tests.

    Encore Merci

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

Discussions similaires

  1. Trigger & Sybase : Utilisation du when
    Par LeNovice dans le forum Sybase
    Réponses: 1
    Dernier message: 14/05/2008, 13h50
  2. jsf utilisation de tomahawk
    Par pass38 dans le forum JSF
    Réponses: 2
    Dernier message: 22/06/2007, 16h20
  3. Utilisation de when
    Par Jiyuu dans le forum VB.NET
    Réponses: 2
    Dernier message: 07/03/2007, 14h09
  4. [JSF] utilisation d'un bean global
    Par bertlef dans le forum JSF
    Réponses: 3
    Dernier message: 22/08/2006, 12h22
  5. [JSF] Utilisation des composants
    Par Gob4 dans le forum JSF
    Réponses: 5
    Dernier message: 07/03/2006, 12h27

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