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] Problème pour créer un customer


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2012
    Messages : 23
    Par défaut [JSF] Problème pour créer un customer
    Bonjour,

    Je cherche à créer un client via JSF pour l'afficher dans un dataTable.
    Je dois utiliser la fonctionnalité de JSF pour créer le client. Autrement dit, je ne dois pas faire Client c = new Client(nom, prenom);

    Dans la vue, j'ai "clientEdition.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
     
    <f:view>
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <link href="bootstrap/css/bootstrap.css" rel="stylesheet">
            <link href="bootstrap/css/bootstrap-responsive.css" rel="stylesheet">
            <link href="bootstrap/css/docs.css" rel="stylesheet">
            <link href="bootstrap/js/google-code-prettify/prettify.css" rel="stylesheet">
            <title>JSP Page</title>
        </head>
        <body>
             <h:form id="EditionClient">
                    <h:outputLabel id="labelName" for="nom" value="Nom"/>
                    <h:inputText id="nom" required="true" value="#{clientEditionBean.client.nom}"/>     
     
                    <h:outputLabel id="labelFirstName" for="prenom" value="Prénom"/>
                    <h:inputText id="prenom" required="true" value="#{clientEditionBean.client.prenom}"/>
                    <br/>
                    <h:commandButton id="edition" styleClass="btn btn-primary" type="submit" value="Créer Client" action="#{clientEditionBean.addClient}"/>
     
            </h:form>
     
        </body>
    </html>
    </f:view>
    Dans la couche présentation, j'ai "clientEditionBean"

    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
     
    @ManagedBean(name="clientEditionBean")
    @SessionScoped
    public class ClientEditionBean implements Serializable {
     
        private Client client;
     
        public ClientEditionBean(){};
     
        public String addClient() {
            ClientService.addClient(client);
            return "CleNavigation";
        }
        /**
         * @return the client
         */
        public Client getClient() {
            return client;
        }
     
        /**
         * @param client the client to set
         */
        public void setClient(Client client) {
            this.client = client;
        }
    J'ai l'erreur suivante lorsque je soumets le formulaire (lorsque je clique sur Créer Client) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    javax.el.PropertyNotFoundException: Target Unreachable, 'null' returned null
    J'imagine que la cible (Target) est Client. Mais je ne comprends pas pourquoi le client serait null. Dans Scoped Variables, nom et prenom sont renseignés.
    Lorsque je remplace l'objet client, par 2 paramètres String (nom, prénom), tout fonctionne parfaitement. Néanmoins, pour l'exercice, je ne dois pas faire de bricolage avec des String.

  2. #2
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2012
    Messages : 9
    Par défaut
    Salut, initialise ton objet client dans le constructeur par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public ClientEditionBean (){
    this.client = new Client();
    }
    et puisque ton managed bean est de type @SessionScoped, à chaque fois tu termine la création d'un client avec succès, réinitialise ton objet à nouveau:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public String addClient() {
            ClientService.addClient(client);
            //si aucune erreur
            this.client = new Client();
            return "CleNavigation";
        }
    sinon, utilise le scope @ViewScoped pour ne pas avoir à traiter ce cas.

Discussions similaires

  1. Réponses: 3
    Dernier message: 18/08/2006, 19h05
  2. [RMI] problème pour créer les _Skel et _Stub
    Par nixonne dans le forum API standards et tierces
    Réponses: 10
    Dernier message: 06/07/2006, 19h49
  3. Problème pour créer une clé étrangère
    Par DevloNewb' dans le forum Requêtes
    Réponses: 5
    Dernier message: 01/07/2006, 16h30
  4. Problème pour créer la relation
    Par LeNeutrino dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 09/02/2006, 13h24
  5. [XML word] problème pour créer des puces
    Par ratapapa dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 21/07/2005, 13h52

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