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 :

mes method bean ne fonctionne pas


Sujet :

JSF Java

  1. #1
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 15
    Par défaut mes method bean ne fonctionne pas
    voila mon simple code

    hello-world.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
    <%@ page contentType="text/html" %>
    <%@ taglib uri="http://java.sun.com/jsf/html" prefix="html" %>
    <%@ taglib uri="http://java.sun.com/jsf/core" prefix="core" %>
    <core:view>
     
        <html:form>
            <BR/>
            <html:outputText value="Nom : #{accountDatas.customer.name}"/>            
            <BR/>
            <html:outputText value="Numéro de compte : #{accountDatas.number}"/>
            <BR/>
            <html:outputText value="Total : #{accountDatas.total}"/>
            <BR/>
            <html:outputText value="Montant :"/>
            <html:inputText value="#{accountDatas.amount}"/>                    
            <html:commandButton value="Retirer le montant" action="#{accountDatas.retrieveAmount}"/>
            <html:commandButton value="Ajouter le montant" action="#{accountDatas.addAmount}"/>
            <BR/> <BR/>
            <html:commandButton value="Valider" action="#{accountDatas.validate}"/>
            <BR/>
        </html:form>
     
    </core:view>
    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
    <?xml version="1.0"?> <!--
     Copyright 2003 Sun Microsystems, Inc. All rights reserved.  SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. -->
    <!DOCTYPE faces-config PUBLIC   "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.0//EN"   "http://java.sun.com/dtd/web-facesconfig_1_0.dtd">
    <faces-config>   <application>
        <locale-config>       <default-locale>fr</default-locale>          </locale-config>   </application>
      <managed-bean>
        <managed-bean-name>accountDatas</managed-bean-name>
        <managed-bean-class>faces.AccountDatas</managed-bean-class>
        <managed-bean-scope>session</managed-bean-scope>
      </managed-bean>
     
    </faces-config>
    web.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
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">
      <context-param>
        <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
        <param-value>client</param-value>
      </context-param>
      <servlet>
        <servlet-name>FacesServlet</servlet-name>
        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
      </servlet>
      <servlet-mapping>
        <servlet-name>FacesServlet</servlet-name>
        <url-pattern>/faces/*</url-pattern>
      </servlet-mapping>
      <servlet>
        <description>Added by JBuilder to compile JSPs with debug info</description>
        <servlet-name>debugjsp</servlet-name>
        <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
        <init-param>
          <param-name>classdebuginfo</param-name>
          <param-value>true</param-value>
        </init-param>
        <load-on-startup>3</load-on-startup>
      </servlet>
      <servlet-mapping>
        <servlet-name>debugjsp</servlet-name>
        <url-pattern>*.jsp</url-pattern>
      </servlet-mapping>
    </web-app>
    AccountDatas.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
    24
    25
    package faces;
     
    public class AccountDatas {
        private long number = 20050000;
         private float total = (float) 100.0;
         private float amount;
         private faces.Customer customer=new Customer();
     
            public AccountDatas() {  }
     
     
     
    public long getNumber(){System.out.println("1"); return this.number; }
    public void setNumber(long value){ System.out.println("2");   this.number = value;     }
    public float getAmount(){System.out.println("5");return this.amount;  }
    public void setAmount(long value){ System.out.println("6"); this.amount = value;     }
    public float getTotal(){System.out.println("3");        return this.total;  }
    public Customer getCustomer(){System.out.println("7"); return this.customer;  }
    public void setCustomer(Customer value){ System.out.println("8"); this.customer =  value;     }
    public void addAmount(){           this.total = this.total + this.amount;   this.amount = (float)0.0;   System.out.println("9");   }
    public void retrieveAmount(){   System.out.println("10");    this.total = this.total - this.amount;         this.amount = (float)0.0;     }
    protected boolean checkAccount(){      System.out.println("11");    if(this.total < 0.0 ){             return false;         }         else return true;     }
    public String validate(){        System.out.println("12");         if(checkAccount()){             return "AccountDatasOK";         }         else {             return "AccountDatasError";  }}
     
    }

    Customer.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
    24
    package faces;
     
    public class Customer {
        private String name = "DURAND";
        private String forname = "Paul";
        public Customer() {
        }
        public Customer(String name, String forname) {this.name=name; this.forname=forname;System.out.println("13"); }
     
        public String getName(){System.out.println("14");
              return this.name;  }
     
    public void setName(String value){ System.out.println("15");
        this.name = value;     }
     
     
     
     
     
      public String getForname(){System.out.println("16");
              return this.forname;  }
          public void setForname(String value){ System.out.println("17");
          this.forname = value;     }
    }
    a l'exaction les methode set get fonctionne mais addAmount et retrieveAmount ne fonctionne pas ,avec le test d'affichage je reçoit toujours après un click sur une bouttan

    7
    14
    1
    3

    danc l'application n'accede pas au methode addAmount ou retrieveAmount


    svp aidez moi à résoudre ce problème

  2. #2
    Expert confirmé
    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
    Par défaut
    Bonjour,
    Les méthodes d'actions (invoquées par les commandButton) doivent retourner un String, et non pas void comme tu le fais.
    Retournes un null pour rester dans la même page.

  3. #3
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 15
    Par défaut
    Citation Envoyé par djo.mos Voir le message
    Bonjour,
    Les méthodes d'actions (invoquées par les commandButton) doivent retourner un String, et non pas void comme tu le fais.
    Retournes un null pour rester dans la même page.
    oui j'ai essyé de le faire mais c'est le meme probléme

    j'ai trouvé cette exemple ici
    http://schmitt.developpez.com/tutori.../introduction/

    avec le fichier ..war ça marche mais lorsque j'essaye de le programmer avec jbuilder 2006 je trouve ce problème méme si je fait un copier coller du code

  4. #4
    Expert confirmé
    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
    Par défaut
    Yep, c'est tout à fait logique: y'a aussi le fait que tu ne mets pas de converter dans ton inputText qui est lié à un float ...

    Bref, un conseil d'ordre plus général: Mets toujours un <h:messages /> dans ta page Comme ça, tu serais au courant pour les erreurs de validation/conversion

  5. #5
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 15
    Par défaut
    Citation Envoyé par djo.mos Voir le message
    Yep, c'est tout à fait logique: y'a aussi le fait que tu ne mets pas de converter dans ton inputText qui est lié à un float ...

    Bref, un conseil d'ordre plus général: Mets toujours un <h:messages /> dans ta page Comme ça, tu serais au courant pour les erreurs de validation/conversion
    oui mon ami c'est vrais ,juste hier que j'ai commencé avec le jsf et il faut appliqué le jaas et les session avant lundi ,il me deux nuit blanche pufffffff

    merci pour ton conseil

  6. #6
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Par défaut
    Citation Envoyé par djo.mos Voir le message
    Bonjour,
    Les méthodes d'actions (invoquées par les commandButton) doivent retourner un String, et non pas void comme tu le fais.
    Retournes un null pour rester dans la même page.
    Même s'il est préférable de retourner un String, même un null, une action peut tout à fait être liée à une méthode retournant void. Ca revient au même que retourner null, c'est-à-dire qu'aucune navigation ne sera exécutée (on reste sur la même page)...
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

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

Discussions similaires

  1. methode isReachable ne fonctionne pas
    Par dumoulex dans le forum Langage
    Réponses: 6
    Dernier message: 03/05/2011, 06h23
  2. [Data] Rechargement de bean ne fonctionne pas selon le contexte
    Par pigalon dans le forum Spring
    Réponses: 0
    Dernier message: 26/04/2011, 10h37
  3. Mes codes VBA ne fonctionnent pas sous access 2007
    Par ralfus dans le forum VBA Access
    Réponses: 2
    Dernier message: 12/11/2008, 11h36
  4. mes applications consoles ne fonctionnent pas
    Par mok16 dans le forum C++Builder
    Réponses: 1
    Dernier message: 10/01/2007, 14h22
  5. [VB.NET] la methode thimer ne fonctionne pas why?
    Par thierry007 dans le forum Windows Forms
    Réponses: 5
    Dernier message: 12/12/2006, 17h17

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