Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    205

    [jsp + java]problema con array di oggetti

    Salve,
    cerca.jsp
    codice:
    <%
                session = request.getSession();
                Utente u = new Utente();
                String op = request.getParameter("op");
                String ruolo = (String) session.getAttribute("ruolo");
                String prenota = "";
                int c=u.getNum();
                Libro lib[] = new Libro[c];
    
                lib = (Libro[]) request.getAttribute("libro");
    
                if (op.equals("prenota")) {
                    prenota = (String) request.getAttribute("prenotazione");
                }
    %>
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <title>JSP Page</title>
        </head>
        <body>
        <body>
            <div align="left">
    
                CERCA LIBRI
    
            </div>
            <p align="left">
                Cerca i libri che ti interessano</p>
            
    
            
    
            <form action="Controller?op=ricerca" method="post">
                <table width="100%" border="0">
                    <tr>
                        <td width="25%"></td>
                        <td width="60%">
                    <tr>
                        <td>Titolo</td>
                        <td><input type="text" name="titolo" size="20"></td>
                    </tr>
                    <tr>
                        <td>Autore</td>
                        <td><input type="text" name="autore" size="20"></td>
                    </tr>
                    <tr>
                        <td>Editore</td>
                        <td><input type="text" name="editore" size="20"></td>
                    </tr>
                    <tr>
                        <td>Anno di pubblicazione</td>
                        <td><input type="text" name="annopub" size="20"></td>
                    </tr>
    
                    <tr>
                        <td align="right"><input name="submit" type="submit" value="Cerca" /></td>
                    </tr>
                </table>
            </form>
            
    
            
    
            
    
    
            <% if (lib[0] == null) {%>
            Il libro non è presente in biblioteca!
    
            <%} else {
    %>
            <table border="1" WIDTH="55%" cellpadding="10" cellspacing="1">
                <tr>
                    <th>Titolo</th>
                    <th>Autore</th>
                    <th>Editore</th>
                    <th>Anno publicazione</th>
                </tr>
                <tr>
     <%    for(int i=0;i<c;i++)
         {%>
                       <td><%=lib[i].getTitolo() %></td>
                 <td><%=lib[i].getAutore() %></td>
                 <td><%= lib[i].getEditore()   %></td>
                 <td><%= lib[i].getAnno_publicazione()%></td>
       <%  }%>
                </tr>
            </table>
        </body>
    </html>
    controller.java
    codice:
            if("ricerca".equals(op)) {
                    String titolo = request.getParameter("titolo");
                    String autore = request.getParameter("autore");
                    String editore = request.getParameter("editore");
                    String annopub = request.getParameter("annopub");
    
                    session.setAttribute("titolo", titolo);
                    session.setAttribute("autore", autore);
                    session.setAttribute("editore", editore);
                    session.setAttribute("annopub", annopub);
    
                    int i=0;
                    u.setNum(u.quantiLibri(titolo, autore, editore, annopub));
                    Libro libro[]= new Libro[u.getNum()];
                    
                    libro = u.cerca_libro(titolo,autore,editore,annopub);//metodo che restituisce un array di oggetti libro
                    request.setAttribute("libro", libro);
    
                    request.getRequestDispatcher("/cerca_libri.jsp").forward(request, response);
                    i++;
                
            }
    ricevo un errore java.lang.NullPointerException e non capisco il perchè?
    grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    guarda lo stacktrace e vedi la riga di codice che ti da errore

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    205
    Originariamente inviato da Vindav
    guarda lo stacktrace e vedi la riga di codice che ti da errore
    in cerca.jsp

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    i vari parametri che recuperi in pagina esistono(ruolo, libro,prenotazione ecc...)? verifica che non siano uguali a null, posta anche lo stacktrace...

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    205
    Originariamente inviato da Vindav
    i vari parametri che recuperi in pagina esistono(ruolo, libro,prenotazione ecc...)? verifica che non siano uguali a null, posta anche lo stacktrace...
    forse è qui che c è uguale a null in cerca.jsp
    codice:
                int c=u.getNum();
                Libro lib[] = new Libro[c];
    ERRORE:

    codice:
    java.lang.NullPointerException
            at org.apache.jsp.cerca_jsp._jspService(cerca_jsp.java from :115)
            at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:111)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
            at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:403)
            at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:492)
            at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:378)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
            at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1534)
            at org.apache.catalina.core.ApplicationDispatcher.doInvoke(ApplicationDispatcher.java:787)
            at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:649)
            at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:604)
            at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:534)
            at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:1015)
            at org.apache.jsp.cerca_005flibri_jsp._jspService(cerca_005flibri_jsp.java from :161)
            at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:111)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
            at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:403)
            at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:492)
            at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:378)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
            at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1534)
            at org.apache.catalina.core.ApplicationDispatcher.doInvoke(ApplicationDispatcher.java:787)
            at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:649)
            at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:483)
            at org.apache.catalina.core.ApplicationDispatcher.doDispatch(ApplicationDispatcher.java:454)
            at org.apache.catalina.core.ApplicationDispatcher.dispatch(ApplicationDispatcher.java:350)
            at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:300)
            at Java.Controller.processRequest(Controller.java:156)
            at Java.Controller.doGet(Controller.java:208)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:735)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
            at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1534)
            at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281)
            at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
            at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
            at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
            at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:98)
            at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:91)
            at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:162)
            at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:326)
            at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:227)
            at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:170)
            at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:822)
            at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:719)
            at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1013)
            at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:225)
            at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
            at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
            at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
            at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
            at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
            at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
            at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
            at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
            at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
            at java.lang.Thread.run(Thread.java:662)

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    1,123
    c non può essere uguale a null, è un tipo primitivo.
    Potrebbe esserlo u. Prima della chiamata a getNum() metti un System.out.println() e stampa a video u (dopo alla stampa metti anche un System.exit(0), così eviti di ottenere l'errore, sempre se è causa sua).

    Comunque lo stack trace riporta la riga dell'errore.

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    205
    Originariamente inviato da Patrick Jane
    c non può essere uguale a null, è un tipo primitivo.
    Potrebbe esserlo u. Prima della chiamata a getNum() metti un System.out.println() e stampa a video u (dopo alla stampa metti anche un System.exit(0), così eviti di ottenere l'errore, sempre se è causa sua).

    Comunque lo stack trace riporta la riga dell'errore.
    il risultato della stampa di u è questo:
    codice:
    u : Bean.Utente@30d1c1

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    309
    ciao
    quando pesco un oggetto in una jsp da session piuttpsto che da request faccio sempre una verifica se è nullo prima di usare quest'ultimo. in caso di null faccio in modo di dare un avviso che c'è qualcosa che non va.
    Inoltre session = request.getSession(); la puoi evitare, in quanto session come request è un oggetto implicito nella jsp.
    Mi sa che devi verificare tutti gli oggetti che peschi da session o request
    tomcat 6.016
    netbeans 6.1

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    205
    ho fatto una modifica

    cerca.jsp
    codice:
    <%
                Utente u = new Utente();
                String op = request.getParameter("op");
                String ruolo = (String) session.getAttribute("ruolo");
                String prenota = "";
    
                System.out.println("op sono qui: "+op);
                //System.exit(0);
                int c=u.getNum();
                Libro lib[] = new Libro[c];
                
                if(op.equals("ricerca")){
                lib = (Libro[]) request.getAttribute("libro");
                
                }
                if (op.equals("prenota")) {
                    prenota = (String) request.getAttribute("prenotazione");
                }
    %>
    adesso ho un errore
    codice:
    java.lang.ArrayIndexOutOfBoundsException: 0
            at org.apache.jsp.cerca_jsp._jspService(cerca_jsp.java from :118)
            at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:111)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
            at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:403)
            at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:492)
            at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:378)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
            at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1534)
            at org.apache.catalina.core.ApplicationDispatcher.doInvoke(ApplicationDispatcher.java:787)
            at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:649)
            at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:604)
            at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:534)
            at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:1015)
            at org.apache.jsp.cerca_005flibri_jsp._jspService(cerca_005flibri_jsp.java from :161)
            at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:111)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
            at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:403)
            at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:492)
            at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:378)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
            at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1534)
            at org.apache.catalina.core.ApplicationDispatcher.doInvoke(ApplicationDispatcher.java:787)
            at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:649)
            at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:483)
            at org.apache.catalina.core.ApplicationDispatcher.doDispatch(ApplicationDispatcher.java:454)
            at org.apache.catalina.core.ApplicationDispatcher.dispatch(ApplicationDispatcher.java:350)
            at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:300)
            at Java.Controller.processRequest(Controller.java:156)
            at Java.Controller.doGet(Controller.java:208)

  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    come è valorizzata la variabile c? metti un system.out per verificarlo, e metti sti benedetti controlli prima di recuperare i vari parametri/attributi...

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 © 2025 vBulletin Solutions, Inc. All rights reserved.