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

Servlets/JSP Java Discussion :

[Servlet / JSP / JQuery] Pb de cast et de récupération d'objets


Sujet :

Servlets/JSP Java

  1. #1
    Membre averti
    Homme Profil pro
    Développeur et passionné
    Inscrit en
    Juillet 2011
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur et passionné

    Informations forums :
    Inscription : Juillet 2011
    Messages : 34
    Par défaut [Servlet / JSP / JQuery] Pb de cast et de récupération d'objets
    Bonjour à tous,

    J'ai un projet de webapp en Servlet-Jsp-Ajax-JQuery. Le principe est que des Consultants seront gérés par des RDS, qui seront eux-même gérés par des Admin.

    Là, mon probleme se situe lors du dialogue entre les objets Consultants et les objets RDS.

    Pour commencer, j'ai donc créé mes classes Rds et Consultant ainsi que les classes RdsSql et ConsultantSql associées.
    Après un petit script de test, tout fonctionne.

    Ça se corse lorsque j'essaye de réaliser cela à partir du navigateur.
    L'accueil est une page demandant le login et mdp.
    Au clic, on appelle la ServletConnexion qui vérifie la présence de l’identifiant et du mot de passe dans la base.
    Si elle trouve une correspondance, elle renvoie vers la page d'accueil de la catégorie concernée (rds ou admin).
    ça marche.

    Pour le RDS, la servlet enregistre l'objet rds en session (et/ou on est redirigé sur la page default.jsp, qui inclus "header.jsp - consultant.jsp et footer.jsp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <%
    //On recupere notre objet rds 
    Rds rds=new Rds();
    rds=(Rds)session.getAttribute("rds");
    out.print(rds.getId_rds());
    %>
        <td><img id="<%="img_"+rds.getConsultants().get(i).getId_consultant()%>" class="btnModifier" src="images/icone_modifier.png" /></td>
     
                <td><a class="btnSupprimer" href="<%="javascript:supprimer("+rds.getConsultants().get(i).getId_consultant()+")"%>"><img src="images/icone_supprimer.png" /></a></td>
        <input id="ajouter" type="button" value="Ajouter"/>
    </div>
    Cette page est ensuite gérée par la ServletConsultant
    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
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
     
            //On recupere la session precedente
            HttpSession session = request.getSession(true);
     
            Rds rds = new Rds();
            rds=(Rds)request.getAttribute("rds");
            rds.affiche();
    (int)Integer.parseInt(request.getParameter("idRds").toString());
            //Lorsque appel requete Ajax 
            if ( request.getParameter("action")!=null && request.getParameter("action").compareTo("add")==0  ) {
                //ajout en base
     
                Consultant consultantAdd = new Consultant (
                            rds.getId_rds(),
                            request.getParameter("nom"),
                            request.getParameter("prenom"),
                            request.getParameter("email"),
                            request.getParameter("client"),
                            request.getParameter("telPort"),
                            request.getParameter("telSec"),
                            request.getParameter("type")
                        ); 
                try{
                    consultantAdd.setId_consultant( ConsultantSQL.addOne((Consultant)consultantAdd) );    
     
                }catch(Exception e){e.printStackTrace();}
     
                //on renvoie au jsp et on construit le <tr>
                String retourAjax =  new String();        
     
                // {"data1":100,"data2":"hello"}
     
                retourAjax = "{'nom':"+ consultantAdd.getNom()+",'prenom':"+ consultantAdd.getPrenom()+",'email':"+ consultantAdd.getEmail()+",'client':"+ consultantAdd.getClient()+",'telPort':"+ consultantAdd.getTel_port()+",'telSec':"+ consultantAdd.getTel_sec()+",'idConsultant':"+ consultantAdd.getPrenom()+",'prenom':"+ consultantAdd.getId_consultant()+"}";
     
                response.setContentType("text/xml");
                response.setHeader("Cache-Control", "no-cache");
                PrintWriter out = response.getWriter();
                out.println(retourAjax);
            }
    }
    C'est là que tout se corse. J'ai des problèmes lorsque je cherche a récupérer mes attributs passés en session ou en requête.
    Je veux pouvoir réutiliser id_rds présent dans le Rds en session, mais j'ai des nullPointerException et d'autres erreurs levées au niveau du cast de id_rds en int pour l'ajout d'un nouveau consultant

    Pour finir, les fichiers js :
    consultant.js
    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
    function supprimer ( idConsultant ) {
     
        //suppression de la ligne
        $('#consultant_' + idConsultant).remove();    
    }
     
    $(document).ready(function(){
     
        //variable pour savoir si on est en creation ou modification d'un element
        var CreaDialog;
     
        $('#dialogBox').dialog({
            height : 500,
            width : 450,
            autoOpen : false,
            modal : true,
    });
    //Fonction qui permet de gérer les retours des appels Ajax 
    var Appel_ajax= function(url, param, callback){
     
        $.post(url, param, function(res){
     
            if( res.code <= 0 ){
                alert('Erreur - code n° : ' + res.code);
                // si on veut on peu rediriger comme ca
                //document.location.href= "Url de la redirection";      
     
            } else {
                callback( res );
            }
        });
    };
    C'est encore brouillon mais JEE et Ajax/JQuery sont des notions complètement nouvelles pour moi.
    J'espère que vous arriverez à y lire quelque chose.

    Merci d'avance

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur Java
    Inscrit en
    Août 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Août 2007
    Messages : 197
    Par défaut
    Bonjour,
    Je veux pouvoir réutiliser id_rds présent dans le Rds en Session
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Rds rds = (Rds) session.getAttribute("rds");
    int id_rds = rds.getId();

  3. #3
    Membre averti
    Homme Profil pro
    Développeur et passionné
    Inscrit en
    Juillet 2011
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur et passionné

    Informations forums :
    Inscription : Juillet 2011
    Messages : 34
    Par défaut
    Citation Envoyé par karement Voir le message
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Rds rds = (Rds) session.getAttribute("rds");
    int id_rds = rds.getId();
    Merci.

    En effet, lorsque je récupère l'id_rds comme ça ça fonctionne.
    Mais je suis obligé de récupérer les variables d'instance qui m'intéressent dès que je récupère mon objet ? Et donc de déclarer une variable par information ?

    Dès que j'ai réussi à configurer Eclipse ou Netbeans pour bosser sur mon projet, je teste tout ça !

Discussions similaires

  1. [AJAX] jQuery et Servlets/jsp (j2ee)
    Par JohnSheppard dans le forum jQuery
    Réponses: 4
    Dernier message: 27/12/2012, 19h37
  2. [Servlets - JSP] Problème de session
    Par the java lover dans le forum Servlets/JSP
    Réponses: 8
    Dernier message: 28/11/2011, 09h54
  3. [JSP/JQuery/Servlet] Problème avec SendRedirect
    Par wonay dans le forum Servlets/JSP
    Réponses: 26
    Dernier message: 18/10/2011, 17h41
  4. [servlet][jsp] Creer une page de login
    Par Beuj dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 19/03/2004, 17h55
  5. [Servlet][JSP] valeur ajoutée
    Par yolepro dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 03/03/2004, 17h30

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