Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2011
    Messaggi
    9

    Passaggio ArrayList da servlet a pagina JSP

    Ho bisogno di passare un Arraylist dalla servlet alla pagina Jsp.
    Nell'eseguire il programma l'errore che da é:
    codice:
    org.apache.jasper.JasperException: An exception occurred processing JSP page /anagrafica.jsp at line 22
    
    19:                 //recupero i dati messi dal controller
    20:             ArrayList<Anagrafica> elencoDipendenti = (ArrayList<Anagrafica>) request.getAttribute("keyElencoDipendenti");
    21:             
    22:                 if(elencoDipendenti.size()==0){
    23:                     out.println("Nessun Dipendente ");
    24:                 }else{ 25:             %>
    Se tolgo questo if da un errore sulle istruzioni:
    codice:
                        <%
                            for (Anagrafica anag : elencoDipendenti) {
                        %>
                        <tr>
                        
                            <td><%=anag.getNome()%></td>
                            <td><%=anag.getCognome()%></td>
    
    
                        </tr>
                        <%
                            }
                        %>
    Penso di non riuscire a passare bene l'arraylist e di non avere dati nella JSP.
    Il codice con cui passo i dati é:
    codice:
    try {
    
    
                ArrayList<Anagrafica> elencoDipendenti = dao.allRecord();
                // mettere l'insieme in un contenitore leggibile dalla JSP
                request.setAttribute("keyelencoDipendenti", elencoDipendenti);
                // inviare all'utente la pagina a.jsp
                RequestDispatcher disp = request.getRequestDispatcher("anagrafica.jsp");
                disp.forward(request, response);
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                request.setAttribute("keyerrore", "Errore nella letture messaggi" + e.getMessage());
            }
    Grazie Ciao a Tutti

    Questa èla pagina jsp:

    codice:
    <!DOCTYPE html>
    <%@page import="it.iscs.webapp.model.Anagrafica"%>
    <%@page import="java.util.ArrayList"%>
    <%@page contentType="text/html; charset=UTF-8" %>
    
    
    <html>
    <head>
    <title>Anagrafica</title>
    
    
    </head>
    <body>
        <div id="container">
        
            <div id="menu">
                <%@include file="layout/menu.jsp"%>
            </div>
            <div id="content">
                <%
                    //recupero i dati messi dal controller
                ArrayList<Anagrafica> elencoDipendenti = (ArrayList<Anagrafica>) request.getAttribute("keyElencoDipendenti");
    
    
                %>
                <table class="table table-striped table-hover">
                    <thead>
                        <tr>
                            
                            <th>Nome</th>
                            <th>Cognome</th>
    
    
                        </tr>
                    </thead>
                    
                    <tbody>
                    
    
    
                    </tbody>
            </table>>
            
            </div>
            </div>
    </body>
    la servlet:

    codice:
    /**
     * Servlet implementation class AnagraficaServletController
     */
    public class AnagraficaServletController extends HttpServlet {
        private static final long serialVersionUID = 1L;
    
    
        /**
         * @see HttpServlet#HttpServlet()
         */
        public AnagraficaServletController() {
            super();
            // TODO Auto-generated constructor stub
        }
    
    
        /**
         * @return
         * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
         *      response)
         */
        @Override
        public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
    
            // accedere al Dao
            AnagraficaDao dao = new AnagraficaDao();
            // recuperare l'elenco dei dipendenti
    
    
            try {
    
    
                ArrayList<Anagrafica> elencoDipendenti = dao.allRecord();
                // mettere l'insieme in un contenitore leggibile dalla JSP
                request.setAttribute("keyelencoDipendenti", elencoDipendenti);
                // inviare all'utente la pagina a.jsp
                RequestDispatcher disp = request.getRequestDispatcher("anagrafica.jsp");
                disp.forward(request, response);
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                request.setAttribute("keyerrore", "Errore nella letture messaggi" + e.getMessage());
            }
    
    
        }
    
    
        /**
         * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
         *      response)
         */
        protected void doPost(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            // TODO Auto-generated method stub
            doGet(request, response);
    
    
        }
    
    
    }

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    La prima cosa PIÙ evidente:

    nella Servlet:
    request.setAttribute("keyelencoDipendenti", elencoDipendenti);

    Nella JSP:
    ........ (ArrayList<Anagrafica>) request.getAttribute("keyElencoDipendenti");


    Tieni inoltre presente (magari lo sai ma per completezza) che usare scriptlet Java nelle JSP così come stavi facendo ti espone a svariati problemi.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2011
    Messaggi
    9
    Quote Originariamente inviata da andbin Visualizza il messaggio
    La prima cosa PIÙ evidente:

    nella Servlet:
    request.setAttribute("keyelencoDipendenti", elencoDipendenti);

    Nella JSP:
    ........ (ArrayList<Anagrafica>) request.getAttribute("keyElencoDipendenti");


    Tieni inoltre presente (magari lo sai ma per completezza) che usare scriptlet Java nelle JSP così come stavi facendo ti espone a svariati problemi.
    Non so perché la lettera si diventata maiuscola ,ma nel codice quella lettera è minuscola e comunque non funziona.Mi puoi spiegare quali possono essere i problemi Grazie

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Quote Originariamente inviata da egabrom Visualizza il messaggio
    comunque non funziona.Mi puoi spiegare quali possono essere i problemi Grazie
    Precisa meglio l'errore/eccezione che ti viene indicato, se ce n'è uno.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2011
    Messaggi
    9
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Precisa meglio l'errore/eccezione che ti viene indicato, se ce n'è uno.
    Non mi da un errore preciso.So per certo che l'arraylist che passo alla JSP ha dei dati.Nella JSP è vuoto.
    Questo è il codice che mi da nessun dipendente.

    codice:
    <!DOCTYPE html>
    <%@page import="it.iscs.webapp.model.Anagrafica"%>
    <%@page import="java.util.ArrayList"%>
    <%@page import="java.util.List"%>
    <%@page contentType="text/html; charset=UTF-8" %>
    
    
    <html>
    <head>
    <title>Anagrafica</title>
    
    
    </head>
    <body>
    	<div id="container">
    	
    		<div id="menu">
    			<%@include file="layout/menu.jsp"%>
    		</div>
    		<div id="content">
    
    
    			<%
    				//recupero i dati messi dal controller
    			
    			ArrayList<Anagrafica> elDip = (ArrayList<Anagrafica>)request.getAttribute("keyelencoDipendenti");
    			  
    				if(elDip == null){
    					out.println("Nessun Dipendente ");
    
    
    				}else{
    			%>
    			<table class="table table-striped table-hover">
    				<thead>
    					<tr>
    						
    						<th>Nome</th>
    						<th>Cognome</th>
    
    
    					</tr>
    				</thead>
    				
    				<tbody>
    				<%
    					for (Anagrafica anag : elDip)  {
    						
    					%>
    					<tr>
    					
    						<td><%=anag.getNome()%></td>
    						<td><%=anag.getCognome()%></td>
    
    
    					</tr>
    					<%
    						}
    					%>
    				</tbody>
    		</table>>
    		<%} %>
    		</div>
    		</div>
    </body>

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Quote Originariamente inviata da egabrom Visualizza il messaggio
    Questo è il codice che mi da nessun dipendente.
    La pagina mi risulta CORRETTA. L'unica piccola imprecisione è che c'è verso il fondo un ">" di troppo (appena dopo la chiusura del table). Ma questo NON inficia nulla sulla logica di estrazione, ciclo e output dei dati.

    Consiglio: verifica bene a livello della Servlet se veramente ci sono dati. Quella pagina, tecnicamente, deve funzionare (se non ci sono altre questioni che da qui non riesco io a vedere).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.