Salve ragazzi,
Ho una pagina jsp Che tramite JavaScript Al clic dei bottoni del menu Stampa altre pagine Attraverso il metodo innerHTML.
Il problema mi è sorto quando in una di queste pagine era presente dell'altro codice JavaScript.
Allora, premendo sul pulsante "classe" viene stampata la pagina jsp con l'elenco degli alunni presenti nella classe. A fianco ad ogni studente c'è una check box E in fondo all'elenco il pulsante "rimuovi" che onsubmit richiama la funzione di JavaScript che controlla che almeno una check box sia selezionata E poi invia i parametri selezionati a un ulteriore pagina per la rimozione dal database.
Se visualizzo solo tale pagina jsp funziona correttamente, Ma se Clicco sul Pulsante rimuovi nella pagina stampata dinamicamente, se non seleziono una check box mi restituisce un nullPointerException Nella pagina .java creata dal server:
codice:
GRAVE: Servlet.service() for servlet [jsp] in context with path [/TIW_PI_BELLAIUTO_MARCO_797626] threw exception [java.lang.NullPointerException] with root causejava.lang.NullPointerException
at org.apache.jsp.jsp.rimozione_jsp._jspService(rimozione_jsp.java:89)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:315)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
at java.lang.Thread.run(Thread.java:662)
La pagina creata è questa:
codice:
/* * Generated by the Jasper component of Apache Tomcat
* Version: Apache Tomcat/7.0.53
* Generated at: 2014-05-31 06:54:31 UTC
* Note: The last modified time of this file was set to
* the last modified time of the source file after
* generation to assist with modification tracking.
*/
package org.apache.jsp.jsp;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.jsp.*;
import beans.TitoloBean;
import beans.UtenteBean;
import beans.Database;
public final class rimozione_jsp extends org.apache.jasper.runtime.HttpJspBase
implements org.apache.jasper.runtime.JspSourceDependent {
private static final javax.servlet.jsp.JspFactory _jspxFactory =
javax.servlet.jsp.JspFactory.getDefaultFactory();
private static java.util.Map<java.lang.String,java.lang.Long> _jspx_dependants;
private javax.el.ExpressionFactory _el_expressionfactory;
private org.apache.tomcat.InstanceManager _jsp_instancemanager;
public java.util.Map<java.lang.String,java.lang.Long> getDependants() {
return _jspx_dependants;
}
public void _jspInit() {
_el_expressionfactory = _jspxFactory.getJspApplicationContext(getServletConfig().getServletContext()).getExpressionFactory();
_jsp_instancemanager = org.apache.jasper.runtime.InstanceManagerFactory.getInstanceManager(getServletConfig());
}
public void _jspDestroy() {
}
public void _jspService(final javax.servlet.http.HttpServletRequest request, final javax.servlet.http.HttpServletResponse response)
throws java.io.IOException, javax.servlet.ServletException {
final javax.servlet.jsp.PageContext pageContext;
javax.servlet.http.HttpSession session = null;
final javax.servlet.ServletContext application;
final javax.servlet.ServletConfig config;
javax.servlet.jsp.JspWriter out = null;
final java.lang.Object page = this;
javax.servlet.jsp.JspWriter _jspx_out = null;
javax.servlet.jsp.PageContext _jspx_page_context = null;
try {
response.setContentType("text/html; charset=ISO-8859-1");
pageContext = _jspxFactory.getPageContext(this, request, response,
null, true, 8192, true);
_jspx_page_context = pageContext;
application = pageContext.getServletContext();
config = pageContext.getServletConfig();
session = pageContext.getSession();
out = pageContext.getOut();
_jspx_out = out;
out.write("\r\n");
out.write("\r\n");
beans.TitoloBean titolo = null;
titolo = (beans.TitoloBean) _jspx_page_context.getAttribute("titolo", javax.servlet.jsp.PageContext.PAGE_SCOPE);
if (titolo == null){
titolo = new beans.TitoloBean();
_jspx_page_context.setAttribute("titolo", titolo, javax.servlet.jsp.PageContext.PAGE_SCOPE);
out.write('\r');
out.write('\n');
org.apache.jasper.runtime.JspRuntimeLibrary.introspect(_jspx_page_context.findAttribute("titolo"), request);
out.write('\r');
out.write('\n');
}
out.write("\r\n");
out.write("<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\r\n");
out.write("<html>\r\n");
out.write("<head>\r\n");
out.write("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-1\">\r\n");
out.write("<title>rimozione</title>\r\n");
out.write("</head>\r\n");
out.write("<body>\r\n");
/*-------------La successiva riga di testo restituisce errore----------------------*/
for (int i=0; i<request.getParameterValues("nome").length;i++){
Database.rimuoviTitolo(session.getAttribute("username").toString(), request.getParameterValues("nome")[i]);
}
out.write("\t\r\n");
out.write("\t");
if (true) {
_jspx_page_context.forward("portafoglio.jsp");
return;
}
out.write("\r\n");
out.write("\t\r\n");
out.write("\r\n");
out.write("</body>\r\n");
out.write("</html>");
} catch (java.lang.Throwable t) {
if (!(t instanceof javax.servlet.jsp.SkipPageException)){
out = _jspx_out;
if (out != null && out.getBufferSize() != 0)
try { out.clearBuffer(); } catch (java.io.IOException e) {}
if (_jspx_page_context != null) _jspx_page_context.handlePageException(t);
else throw new ServletException(t);
}
} finally {
_jspxFactory.releasePageContext(_jspx_page_context);
}
}
}
Praticamente i comandi di JavaScript non funzionano. Ma cosa succede esattamente?
Come posso risolvere?