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 :

[Débutant] Problèmes de débutant et de beans


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 252
    Par défaut [Débutant] Problèmes de débutant et de beans
    Bonjour,

    je commence à peine à développer avec J2EE. J'ai juste réussi à créer des EJB actuellement, et mes notions sont assez faibles.

    j'utilise un environnement JBoss 4.0 avec le JDK 1.4. La version de JSF que j'utilise est MyFaces.

    J'ai beau déployer mes fichiers, je ne cesse d'obtenir des erreurs serveur.

    Parfois, l'erreur est que la valeur renvoyée est null, parfois c'est qu'il ne peut trouver de valeurs pour l'expression se trouvant dans mon fichier .jsp.

    Comme je débute et que je suis le seul dans l'entreprise à utiliser cette technologie, j'utilise divers tutoriaux et livres, mais aucun n'est capable de résoudre mon problème. J'ai suivi ce tutoriel (MyEclipse - JSF Login Demo Tutorial), et mon premier bean est celui écrit dans cette application.

    J'utilise en fait deux beans. Le premier est celui créé par le tutoriel et je n'ose le supprimer avant que le bean second bean fonctionne. Le second est un simple bean contenant un champ accessible en lecture seule (si j'ai bien compris).

    Voici le second de mes deux beans
    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
    public class PatientBean {
      private SelectItem[] dispensateurs = null;
      public PatientBean() { }
     
      public void setDispensateurs(SelectItem[] dispensateurs) { this.dispensateurs = dispensateurs; }
     
      public SelectItem[] getDispensateurs() {
        if (dispensateurs == null) {
          dispensateurs = new SelectItem[2];
          dispensateurs[0] = new SelectItem(new Integer(1), "Dupont, Jean");
          dispensateurs[1] = new SelectItem(new Integer(2), "Dupuis, Jacques");
        }
        return dispensateurs;
      }
    }
    Je les ai (me semble-t-il) correctement déclarés dans le faces-config.xml :
    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
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN" "http://java.sun.com/dtd/web-facesconfig_1_1.dtd">
     
    <faces-config>
      <application>
        <locale-config>
          <default-locale>fr</default-locale>
        </locale-config>
      </application>
       <managed-bean>
        <managed-bean-name>UserBean</managed-bean-name>
        <managed-bean-class>be.stluc.pcbw.bean.UserBean</managed-bean-class>
        <managed-bean-scope>session</managed-bean-scope>
      </managed-bean>
      <managed-bean>
        <managed-bean-name>patient</managed-bean-name>
        <managed-bean-class>be.stluc.pcbw.bean.PatientBean</managed-bean-class>
        <managed-bean-scope>session</managed-bean-scope>
      </managed-bean>
      <navigation-rule>
        <from-view-id>/welcome.jsp</from-view-id>
        <navigation-case>
          <to-view-id>/patientData.jsp</to-view-id>
        </navigation-case>
      </navigation-rule>
      <navigation-rule>
        <from-view-id>/index.jsp</from-view-id>
        <navigation-case>
          <to-view-id>/welcome.jsp</to-view-id>
        </navigation-case>
      </navigation-rule>
    </faces-config>
    et pour finir, ma page JSP :
    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
    <%@ page language="java" pageEncoding="UTF-8"%>
    <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
    <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
    <%String path = request.getContextPath();
          String basePath = request.getScheme() + "://" + request.getServerName()
              + ":" + request.getServerPort() + path + "/";
    %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <f:view>
        <f:loadBundle basename="be.stluc.pcbw.MessageBundle" var="msgs" />
        <head>
          <base href="<%=basePath%>" />
          <title><h:outputText value="#{msgs.pageTitle}" /></title>
          <link rel="stylesheet" type="text/css" href="styles.css" />
        </head>
        <body>
          <p>
            <h:commandLink value="#{msgs.back}"></h:commandLink>
          </p>
          <h:selectOneListbox size="5">
            <f:selectItems value="#{patient.dispensateurs}"/>
          </h:selectOneListbox>
        </body>
      </f:view>
    </html>
    Les erreurs se produisent systématiquement à l'appel de #{patient.XXX} :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cannot get value for expression '#{patient.dispensateurs}'
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Value binding '#{patient.dispensateurs}'of UISelectItems with component-path {Component-Path : [Class: javax.faces.component.UIViewRoot,ViewId: /welcome.jsp][Class: javax.faces.component.html.HtmlForm,Id: dummy][Class: javax.faces.component.html.HtmlSelectOneListbox,Id: _id23][Class: javax.faces.component.UISelectItems,Id: _id24]} does not reference an Object of type SelectItem, SelectItem[], Collection or Map but of type : null
    Et lorsque je tente de logger quelque chose, pas moyen d'avoir le résultat du log, comme si la ligne n'était jamais exécutée.

    D'avance merci à ceux qui m'aideront.

    Olivier

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 252
    Par défaut
    Bon, j'ai créé un nouveau projet similaire avec comme option de créer un fichier war (Packaged Archive) plutôt qu'un dossier (Exploded Archive) et ça fonctionne du tonnerre. Si je comprends bien, il arrivait pas à résoudre la classe. C'est maintenant le cas.

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

Discussions similaires

  1. [Débutant] Problème de récupération valeurs Bean
    Par DanZzz dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 14/08/2005, 20h27
  2. Réponses: 2
    Dernier message: 28/04/2004, 11h25
  3. [Débutant] Problème de déconnexion d'une page JSP
    Par amal9 dans le forum Servlets/JSP
    Réponses: 12
    Dernier message: 22/01/2004, 13h40
  4. [débutant] Problèmes avec CRegKey
    Par Pedro dans le forum MFC
    Réponses: 4
    Dernier message: 10/11/2003, 15h28
  5. Réponses: 11
    Dernier message: 02/09/2003, 14h20

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