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 :

richfaces: probléme avec a4j:commandButton


Sujet :

JSF Java

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2009
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 31
    Points : 16
    Points
    16
    Par défaut richfaces: probléme avec a4j:commandButton
    Salut
    j'ai commencé à travailler avec richfaces pour décorer ma page
    mais le problème réside au niveau du bouton "confimer"
    voici mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <a4j:commandButton  id="submit" value="Confirmer "  style="width: 175px"  action="#{Beanequi.connexionBD}" >
    </a4j:commandButton>
    ce bouton est relié à une méthode "connexionBD" utilisé pour insérer des données dans une base de données.
    quand je clique sur "confirmer" une autre page s'affiche et qui contient le message suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    HTTP Status 404 / .jsp not found
    message/ .jsp not found
     
    descriptionThe requested resource (/ .jsp not found) is not available.
    avant de commencer à travailler avec richfaces, ce bouton me permettait d'insérer des données avec succès (avec le préfix h) mais la je ne sais pas comment faire et quoi ajouter
    pourriez vous m'aider s'il vous plait
    je vous remercie

  2. #2
    Membre confirmé Avatar de Lordsephiroth
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Suisse

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 199
    Points : 494
    Points
    494
    Par défaut
    Il y a beaucoup de différence entre un bouton h: et un bouton a4j:

    Le bouton de la librairie a4j sousmet le formulaire en AJAX. Il n'y a donc aucune raison pour qu'un rechargement de page ait lieu, rechargement qui donne visiblement lieu à une erreur HTTP 404.

    Le debug du code AJAX étant peu intuitif, je te conseille fortement d'ajouter en bas de ta page RichFaces ce morceau de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a4j:log level="DEBUG" popup="false" width="600" height="200"/>
    Cette ligne ajoute une <div> dans laquelle s'affichent les différents appels AJAX que ton application réalise. Si des erreurs apparaissent, ils peuvent t'aider à résoudre tes problèmes (les messages sont rarement limpides).

    Je ne peux pas te donner plus de conseils avec le peu de code que tu as indiqué ici. Si tu cherches des conseils plus précis, tente de mettre l'intégralité du code de ta page, qu'on puisse se rendre compte de l'endroit où peut être l'erreur.

  3. #3
    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 : 46
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Points : 7 275
    Points
    7 275
    Par défaut
    Bon, alors oui mais non. Certes les boutons a4j doivent être majoritairement utilisés dans un cas d'appel Ajax seulement, càd en dehors d'un rafraichissement complet de la page (qu'il y ait navigation vers une autre page ou non).
    Toutefois, il n'y a pas de raison pour que cela donne une erreur 404.

    Narouto, peut-on voir le code de ton action Java ?

  4. #4
    Membre à l'essai
    Inscrit en
    Mai 2009
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 31
    Points : 16
    Points
    16
    Par défaut
    Salut
    je vous remercie pour les réponses
    voici mon code 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
    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
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
     
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
     
    import javax.faces.bean.ManagedBean;
    import javax.faces.bean.SessionScoped;
    import java.sql.*;
    import java.util.ArrayList;
    import java.util.List;
    import java.util.logging.Level;
    import java.util.logging.Logger;
    import javax.faces.model.SelectItem;
     
    /**
     *
     * @author utilisateur
     */
    @ManagedBean(name="Beanequi")
    @SessionScoped
    public class Beanequi {
     
        private String numequi;
    private String nomresp;
    private String selectedItem;
        private Connection con;
     
    public void setnumequi(String numequi){
        this.numequi=numequi;
      }
    public void setnomresp(String nomresp){
        this.nomresp=nomresp;
      }
     
     
    public String getnumequi()
    {
        return numequi;
    }
     
    public String  getnomresp()
    {
        return nomresp;
    }
     
     
    public String getSelectedItem() {
     
        return selectedItem;
    }
     
    public void setSelectedItem(String selectedItem) {
        this.selectedItem = selectedItem;
    }
     
    public List getSelectItems() {
        List selectItems = new ArrayList();
        selectItems.add(new SelectItem(null, "-- Choisissez --"));
         selectItems.add(new SelectItem("MACHINES TOURNANTES", "MACHINES TOURNANTES"));
        selectItems.add(new SelectItem("CHAUDRONNERIE", "CHAUDRONNERIE"));
        selectItems.add(new SelectItem("ELECTRICITE", "ELECTRICITE"));
         selectItems.add(new SelectItem("INSTRUMENTATION", "INSTRUMENTATION"));
         selectItems.add(new SelectItem("LOGISTIQUE", "LOGISTIQUE"));
         selectItems.add(new SelectItem("PEINTURE", "PEINTURE"));
         selectItems.add(new SelectItem("GENIE CIVIL", "GENIE CIVIL"));
          selectItems.add(new SelectItem("MANUTENTION", "MANUTENTION"));
           selectItems.add(new SelectItem("ECHAFFAUDAGE", "ECHAFFAUDAGE"));
     
     
     
        // The values are the keys passed to the selectItem property.
        // The labels are those what you see on the menu.
     
     
     
        return selectItems;
    }
     
    public String connexionBD() throws SQLException {
        String result=" ";
     
         try
    			    {
                         Class.forName("oracle.jdbc.driver.OracleDriver");
        			     System.out.println ("driver etablie");
    			    }
    			    catch(Exception e)
    			    {
    			    	System.out.println ("erreur:Driver int" +
    			    			"rouvable");
    			    }
     
     
     
     
            try
     
    			    {
    			        String URL = "jdbc:oracle:thin:@localhost:1521:gmao";
    			    	String USER = "pfe";
    			    	String PASSWD = "gmao";
     
    			    	  con =DriverManager.getConnection(URL,USER, PASSWD);
    			    	System.out.println ("connexion  base pfe etablie");
    			    }
    			    catch(Exception e)
                                        {
    System.out.println ("erreur: base introuvable");
     
    			    }
     
     
    Statement st = con.createStatement();
     
     
     
     
    int val = 0;
                try {
                    val = st.executeUpdate("insert into equipe_execution values( '"+numequi+"','" +nomresp + "', '"+selectedItem+"')");
     
                } catch (SQLException ex) {
    Logger.getLogger(Beanequi.class.getName()).log(Level.SEVERE, null, ex);
                }
     
    System.out.println(val);
    return result;
    }
     
     
     
     
        /** Creates a new instance of Beanequi */
        public Beanequi() {
        }
     
    }
    comme je l'ai dit avant d'utiliser richfaces j'arrivais à insérer mes données avec succés
    mais en utilisant richfaces je ne peut pas (noté que j'ai utilisé le bouton avec préfix h mais ça n'a rien donné)
    voici ma page jsf:
    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
     
    <%@page contentType="text/html" pageEncoding="UTF-8"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
       "http://www.w3.org/TR/html4/loose.dtd">
    <%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
    <%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
     
    <%@taglib uri="http://richfaces.org/a4j" prefix="a4j"%>
    <%@taglib uri="http://richfaces.org/rich" prefix="rich"%>
     
      <f:view>
     
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <title> personnel ex&eacute;cution </title>
        </head>
        <body>
           <h:form>
                <a4j:include viewId="Menuintr.jsp"/>
                <BODY BGCOLOR= "#F2F2F2" link="#00CED1" ><br/><br/><br/>
               <table>
                   <tr height="50">
     
         <td width="190">Num&eacute;ro &eacute;quipe d'ex&eacute;cution</td>
         <td width="190"> <h:inputText value="#{Beanequi.numequi}"  size="30"/>
     </td><td>&nbsp &nbsp   Nom responsable d'ex&eacute;cution &nbsp  &nbsp &nbsp </td> <td width="190"> <h:inputText value="#{Beanequi.nomresp}"  size="30"/> </td></tr>
     <tr height="50">
     
         <td width="190"> Discipline</td>  
         <td>
         <h:selectOneMenu value="#{Beanequi.selectedItem}">
        <f:selectItems value="#{Beanequi.selectItems}"/>
    </h:selectOneMenu>
     
         </td></tr>
               </table>
     <br/><br/><br/>
     <a4j:commandButton  id="submit" value="Confirmer "  style="width: 175px"  action="#{Beanequi.connexionBD}" ></a4j:commandButton>
         </h:form>
    </body>
    </html>
    </f:view>
    Tout conseil serait grandement apprécié
    je vous remercie

  5. #5
    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 : 46
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Points : 7 275
    Points
    7 275
    Par défaut
    Ta méthode connexionDB va retourner result, qui vaut toujours " ". Ce n'est pas une chaine vide, et peut être que Richfaces l'interprète comme une règle de navigation, qu'elle n'arrive pas à identifier.

    Essaie pour voir de retourner null à la fin de ta méthode.

  6. #6
    Membre à l'essai
    Inscrit en
    Mai 2009
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 31
    Points : 16
    Points
    16
    Par défaut
    Salut
    vous avez raison romaintaz quand j'ai remplacé " " par null ça marché
    je vous remercie

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

Discussions similaires

  1. Problème avec <a4j:commandButton>
    Par Bahri87 dans le forum Servlets/JSP
    Réponses: 15
    Dernier message: 10/03/2012, 00h27
  2. Problème avec a4j:commandButton (richfaces)
    Par elbissat dans le forum JSF
    Réponses: 3
    Dernier message: 29/05/2009, 14h27
  3. problème avec a4j:outputPanel (richfaces)
    Par nawrasarum dans le forum JSF
    Réponses: 8
    Dernier message: 15/05/2009, 11h59
  4. Problèmes avec a4j dans richfaces
    Par jean-pierre96 dans le forum JSF
    Réponses: 4
    Dernier message: 02/02/2009, 18h04
  5. Réponses: 4
    Dernier message: 23/01/2008, 11h35

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