Partage

[JSP] Afficher le contenu d'une ArrayList dans page jsp

Sujet résolu
Le 27 avril 2010 à 12:29:35

Bonjour,

Je n'arrive pas a afficher le contenu de mon ArrayList dans ma page jsp, je m'y prend peut etre mal...
Voici ma servlet :
public void doGet(HttpServletRequest request, 
	HttpServletResponse response)
	throws IOException, ServletException{
	
	WebApplicationContext factory = WebApplicationContextUtils.getRequiredWebApplicationContext(
			this.getServletContext());
	
	ProfesseurDAO profDao = (ProfesseurDAO) factory.getBean("ProfesseurDAO");
	//Professeur prof = profDao.getProfesseurById(2);
	
	ArrayList listProf = profDao.getAllProfesseur();
	
	
	request.setAttribute("listProf", listProf);
	
	RequestDispatcher dispatch = request.getRequestDispatcher("jsp/listProf.jsp");
	dispatch.forward(request, response);
	
}

ma page jsp :
<table border="1px" cellpadding="0" cellspacing="0">
<caption>Les profs :</caption>
<% 
	ArrayList<Professeur> listProf = new ArrayList();
	listProf = (ArrayList<Professeur>) request.getAttribute("listProf");


	for(Iterator<Professeur> it = listProf.iterator(); it.hasNext();){
		Professeur prof = it.next();
		out.println("<tr><td>Id</td><td>"+prof.getProf_id()+"</td>"
				+"<td>Nom</td><td>"+prof.getProf_nom()+"</td>"
				+"<td>Prenom</td><td>"+prof.getProf_prenom()+"</td>");
	}

	
%>
</table>

Et voila mon erreur :

27-Apr-2010 11:15:15 org.apache.catalina.core.ApplicationDispatcher invoke
SEVERE: Servlet.service() for servlet jsp threw exception
java.lang.NullPointerException
at org.apache.jsp.jsp.listProf_jsp._jspService(listProf_jsp.java:71)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
at domain.ListProf.doGet(ListProf.java:48)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Unknown Source)
27-Apr-2010 11:15:15 org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet listProf threw exception
java.lang.NullPointerException
at org.apache.jsp.jsp.listProf_jsp._jspService(listProf_jsp.java:71)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
at domain.ListProf.doGet(ListProf.java:48)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Unknown Source)


La page d'erreur Tomcat indique un probleme a la declaration de la boucle for.

Merci d'avance pour le temps que vous consacrerez a mon probleme !

Romain.

[EDIT]
Il semblerai que mon array soit vide.
Pour le remplir j'utilise le code suivant :
public java.util.ArrayList<Professeur> getAllProfesseur() {
	// TODO Auto-generated method stub
	final ArrayList<Professeur> allProf = new ArrayList();
	final String HQL_QUERY = "from Professeur professeur";
   	HibernateCallback callback = new HibernateCallback() {
           public Object doInHibernate(Session session) 
               throws HibernateException,SQLException {
           	Query query = session.createQuery(HQL_QUERY);
           	for(Iterator it=query.iterate();it.hasNext();){
           		Professeur prof = (Professeur) it.next();
           		allProf.add(prof);
           		
           	}
           	return allProf;
           	//return session.save(prof);
           }
       };          
       hibernateTemplate.execute(callback);
      // return 1;
	return null;
}

Et lorsque je debug la variable allProf est toujours vide alors que prof prend bien une valeur de prof dans la BDD a chaque iteration...

Un avis?
Publicité
Le 27 avril 2010 à 12:29:35
Le 27 avril 2010 à 12:58:30

Salut!
Tu utilises le mot clé "final" devant la déclaration de allProf.

Final empêche de modifier la valeur de cette variable, donc normal que ta liste soit toujours vide :)

Amicalement,
Le 27 avril 2010 à 13:08:22

Le probleme c'est que je suis oblige de mettre final diInHibernate ... Un idee?

Problem solved !
public java.util.ArrayList<Professeur> getAllProfesseur() {
		// TODO Auto-generated method stub
		
		final String HQL_QUERY = "from Professeur professeur";
		
		HibernateCallback callback = new HibernateCallback() {
            public Object doInHibernate(Session session) 
                throws HibernateException,SQLException {
            	ArrayList<Professeur> allProf = new ArrayList<Professeur>();
            	Query query = session.createQuery(HQL_QUERY);
            	Iterator it=query.iterate();
            	while(it.hasNext()){
            		Professeur prof = (Professeur) it.next();
            		allProf.add(prof);
            		
            	}
            	return allProf;
            }
        };
        
		return (ArrayList<Professeur>) hibernateTemplate.execute(callback);
	}
Le 27 février 2013 à 20:04:35

je voulu cree un tableua pour affficher la liste mais il ya des erreur dans arrayList ainsi que la liste operation

merci d'avance de votre aide

<%ArrayList <Operation> liste=(ArrayList <Operation>) request.getAttribute("listeop");%>

-
Edité par Hachimjiro le 27 février 2013 à 20:17:55

Le 12 mars 2013 à 10:16:00

Merci de créer un sujet à part pour ton problème, et de l'expliquer correctement.

Créez votre application web avec Java EE    -   Genius at work.

[JSP] Afficher le contenu d'une ArrayList dans page jsp

× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
  • Editeur
  • Markdown