Probème CAST au niveau d'une JSP

EvilJoh Messages postés 2 Date d'inscription vendredi 4 juin 2010 Statut Membre Dernière intervention 4 juin 2010 - 4 juin 2010 à 15:22
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 - 4 juin 2010 à 16:06
Bonjour à tous,
je vous expose mon problème, je développe un site internet en J2EE. J'en suis pour l'instant aux fonctions de base : création d'un objet et affichage des objets crées dans une jsp.

Je vous décris plus en détails mes étapes qui aboutissent au problème :
-je travaille dans une façade en @Local
-je lance ma servlet objets.Ajout.java, cette servlet contient :

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

facade.createObjet("objet1", 10);
facade.createObjet("objet2", 15);

}

et dans façade j'ai :

public void createObjet(String name, float prix) {
// TODO Auto-generated method stub
Objets ob = new Objets(name, prix);

em.persist(ob);

}

- ensuite, je lance la servlet objets.List.java qui contient :

protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub

ArrayList<Objets> al = facade.listObjet();
request.setAttribute("listeObjet", al);
RequestDispatcher disp = request.getRequestDispatcher("/objets.jsp");
disp.forward(request, response);

}

et la facade contient :

public ArrayList<Objets> listObjet() {
// TODO Auto-generated method stub
Query q = em.createQuery("select a from objet.Objets as a");

List<Objets> l = (List<Objets>) q.getResultList();
return new ArrayList<Objets>(l);
}

- cette servlet forward vers objets.jsp :

Nom |
Prix |

<%
Object ret = request.getAttribute(\"listeObjet\");

ArrayList<Objets> al = (ArrayList<Objets>) ret;

out.println(al);
for (int i = 0; i < al.size(); i++) {

Objets ob = al.get(i);
out.println(\"----
" + ob.getNom() + ", "
+ ob.getPrix() + ", \");
}
%>



j'obtiens finalement cette erreur :

org.apache.jasper.JasperException: An exception occurred processing JSP page /objets.jsp at line 48

45: out.println(al);
46: for (int i = 0; i < al.size(); i++) {
47:
48: Objets ob = al.get(i);
49: out.println("<tr><td>" + ob.getNom() + "</td><td>"
50: + ob.getPrix() + "</td></tr>");
51: }


Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:498)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:411)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:322)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:249)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
objets.List.doPost(List.java:55)
objets.List.doGet(List.java:41)
javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
cause m�re

java.lang.ClassCastException: objet.Objets cannot be cast to objet.Objets
org.apache.jsp.objets_jsp._jspService(objets_jsp.java:105)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:369)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:322)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:249)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
objets.List.doPost(List.java:55)
objets.List.doGet(List.java:41)
javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)

- Quand je fais juste un out.println(al) cela fonctionne j'obtiens bien ma page avec mes 2 objets =>
[objet.Objets@125ff6c6, objet.Objets@5a424a96]

- mais à partir du moment ou je fais un Objets ob = al.get(i); j'ai l'erreur du dessus.

Je ne vois pas d'où peut provenir l'erreur...

Merci d'avance pour vos réponses

1 réponse

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
4 juin 2010 à 16:06
Salut,

Tu as oublié la règle d'or des JSP : PAS DE CODE JAVA DANS UNE JSP !

Une jsp ne doit contenir que des balises HTML et des taglib, surtout pas de code java, javascript ou encore de style css, c'est la base pour avoir un site lisible, maintenable, optimisé et testable automatiquement.

La preuve : l'erreur que tu nous montre là est incompréhensible.

______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
0
Rejoignez-nous