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] Problème d'accès aux propriétés d'un managedBean


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    294
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 294
    Par défaut [JSF 2.0] Problème d'accès aux propriétés d'un managedBean
    Bonjour, je n'arrive pas accéder aux propriétés de mes managedBean. Voici comment ils sont déclarés:

    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
    <faces-config>
     <managed-bean>
      <managed-bean-name>userBean</managed-bean-name>
      <managed-bean-class>com.jsfcompref.register.UserBean</managed-bean-class>
      <managed-bean-scope>session</managed-bean-scope>
      <managed-property>
       <property-name>firstName</property-name>
       <property-class>java.lang.String</property-class>
       <value/>
      </managed-property>
     </managed-bean>
    </faces-config>
    Mon mangedbean UserBean.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
     
    public class UserBean{
    	String firstName;
     
    	public UserBean() {
    	}
     
    	public String getFirstName() {
    		System.out.println("get first name");
    		return firstName;
    	}
     
    	public void setFirstName(String firstName) {
    		System.out.println("set first name");
    		this.firstName = firstName;
    	}
     
    	public String addConfirmedUser() {
    		System.out.println("Adding new user");
    		return "success";
    	}
     
    }

    Voici comment j'accèdes aux propriétés de mon bean:
    En écriture:
    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
    <%@ page contentType="text/html"%>
    <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
    <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
    <f:view>
    	<html>
    <head>
    <title>A Simple JavaServer Faces Registration Application</title>
    </head>
    <body>
    	<h:form>
    		<h2>JSF Registration App</h2>
    		<h4>Registration Form</h4>
    		<table>
    			<tr>
    				<td>First Name:</td>
    				<td><h:inputText value="#{userBean.firstName}" required="true"
    						id="fname" /> <h:message for="fname" /></td>
    			</tr>
     
    		</table>
    		<p>
    			<h:commandButton value="Register" action="register" />
    		</p>
    	</h:form>
    </body>
    	</html>
    </f:view>
    En lecture:
    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
    <%@ page contentType="text/html"%>
    <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
    <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
    <f:view>
      <html>
        <head>
          <title>A Simple JavaServer Faces Registration Application</title>
        </head>
        <body>
          <h:form>
            <h2>
              JSF Registration App
            </h2>
            <h4>
              Registration Confirmation 
            </h4>
            <table>
                <tr>
                  <td>First Name:</td>
                  <td>
                    <h:outputText value="#{userBean.firstName}"/>
                  </td>
                </tr>
            </table>
            <p><h:commandButton value="Edit" action="revise"/>
               <h:commandButton value="Confirm"
                                     action="#{userBean.addConfirmedUser}" />
            </p>     
          </h:form>
        </body>
      </html>
    </f:view>
    Que ce soit dans mon outputText ou mon inputText, j'aperçois toujours :"#{userBean.firstName}". J'ai inséré des system.out.printl dans mes getter et setter. Et ces messages ne sont jamais apparu alors que le message s'affichant lors du clique sur le bouton "confirm" est bien présent.

    Qui peut me dire d'où vient mon problème,

    Cordialement,

    tupac25

  2. #2
    Membre averti
    Homme Profil pro
    Développeur Java
    Inscrit en
    Septembre 2011
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2011
    Messages : 33
    Par défaut
    il faut que tu ajoute
    la balise <navigation rule > dans le faces Config
    pour votre cas c'est comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <navigation-rule>
            <from-view-id>votre page de lecture</from-view-id>
            <navigation-case>
       <from-outcome>success</from-outcome>
       <to-view-id>votre page ciblé</to-view-id>
      </navigation-case>
      <navigation-case>
     
      </navigation-case>
            </navigation-rule>
    aussi ajoutes l'annotation @ManagedBean(name = "userBean")
    juste avant public class UserBean avec son import: import javax.faces.bean.ManagedBean;

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    294
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 294
    Par défaut
    Tout d'abord merci d'avoir pris le temps de répondre.

    La balise "navigation-rule" est déjà implémenté dans mon fichier de configuration. Je ne l'ai pas indiqué ici car je pense que ce n'est pas pertinent pour ce problème. Ensuite, êtes-vous sur qu'il me faut l'annotation @managedBean vu que celui ci est déjà déclaré dans le fichier de configuration.

  4. #4
    Membre averti
    Homme Profil pro
    Développeur Java
    Inscrit en
    Septembre 2011
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2011
    Messages : 33
    Par défaut
    bon pour moi je fait tous les deux et ça marche bien

  5. #5
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Par défaut
    Citation Envoyé par Linos1003 Voir le message
    bon pour moi je fait tous les deux et ça marche bien
    Nan , c'est l'un ou l'autre, perso je préfère tout centraliser dans le faces-config,l'avantage c'est qu'en visualisant ton fichier de config tu sais tout de suite quels sont tous les managedBeans du projet.
    Pour le souci en question, voila ce que je propose :
    -Dans ton faces-config :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <faces-config>
     <managed-bean>
      <managed-bean-name>userBean</managed-bean-name>
      <managed-bean-class>com.jsfcompref.register.UserBean</managed-bean-class>
      <managed-bean-scope>session</managed-bean-scope>
     <!--Tu vires en fait la declaration de ton champ de propriété-->
     </managed-bean>
    </faces-config>
    -Dans ta page tu vires l'element body (ouvert et fermé)
    -Pas forcement besoin de mettre une navigation-rule, JSF reste sur la même page s'il ne sait pas où se rendre.

  6. #6
    Membre éprouvé Avatar de anisj1m
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2006
    Messages
    1 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Tunisie

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 067
    Par défaut
    pourquoi tu mets <f:view> en dehors de <html> ?

Discussions similaires

  1. Problème d'accès aux propriétés d'un beans via El
    Par itachis dans le forum Développement Web en Java
    Réponses: 0
    Dernier message: 01/03/2015, 14h21
  2. Problème accès aux propriétés entre deux classes liées par many-to-one
    Par moha1984 dans le forum Persistance des données
    Réponses: 1
    Dernier message: 21/06/2010, 10h07
  3. Problème d'accès aux propriétés d'un EventResult
    Par ToniConti dans le forum Flex
    Réponses: 6
    Dernier message: 13/01/2010, 11h42
  4. [Problème] Accès aux propriétés de listes nommées avec []
    Par VincentL dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 05/10/2005, 16h13
  5. Accès aux propriétés ScrollBar d'un composant TMemo
    Par fausto dans le forum C++Builder
    Réponses: 2
    Dernier message: 10/10/2003, 11h08

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