[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:
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:
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:
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