Caricamento dati tabella jstl

di il
12 risposte

Caricamento dati tabella jstl

Ciao a tutti,

Non capisco perchè non carica i dati:
questa è la mi pagina jsp:

<form method="GET" action="CandidatoServlet">
			<table border="1">
				<tr>
					<th>Id_candidato</th>
					<th>Nome</th>
					<th>Cognome</th>
					<th>Luogo Di Nascita</th>
					<th>Residenza</th>
					<th>eta</th>
					<th>data</th>
				</tr>

				<c:forEach items="${listCandidato}" var="cand">
					<tr>
						<td><c:out value="${cand.id_candidato}" /></td>
						<td><c:out value="${cand.nome}" /></td>
						<td><c:out value="${cand.cognome}" /></td>
						<td><c:out value="${cand.luogoDiNascita}" /></td>
						<td><c:out value="${cand.residenza}" /></td>
						<td><c:out value="${cand.eta}" /></td>
						<td><c:out value="${cand.data}" /></td>
					</tr>
				</c:forEach>
			</table>
		</form>


questa è la mia servlet:

CandidatoJdbcImpl cImpl = new CandidatoJdbcImpl();

		System.out.println("sono nella CandidatoServlet");
		try {
			List<Candidato> cList = cImpl.getAllCandidato();
			request.setAttribute("listCandidato", cList);

			RequestDispatcher vista = request.getRequestDispatcher("index.jsp");
			vista.forward(request, response);

		} catch (ParseException e) {
			e.printStackTrace();
		}


ovviamente ho fatto il dao e dao impl


dove ho sbagliato?

12 Risposte

  • Re: Caricamento dati tabella jstl

    robot ha scritto:


    dove ho sbagliato?
    Ad "occhio" non mi pare ci sia nulla di palesemente errato ("id_candidato" con l'underscore in mezzo non è granché ..).
    L'uso di <c:forEach> è corretto e il nome dell'attributo "listCandidato" corrisponde a quanto messo nel request-scope con il setAttribute lato Java.

    Hai verificato (in debugging o con del logging) che cList abbia i dati che ti aspetti? Se ci sono, quello è già un buon punto.
    Come è fatta Candidato? Hai scritto i getter in modo appropriato?

    P.S. do per scontato che il resto di setup sia corretto: JSTL correttamente tirata dentro nel progetto, dichiarazione corretta della taglib con prefisso/uri giusto nella jsp, ecc...
  • Re: Caricamento dati tabella jstl

    Mi da due errori:
    1) non trova la server
    2) che non trova dao iml

    Visto che i progetti sono separati back end e fronte end
  • Re: Caricamento dati tabella jstl

    robot ha scritto:


    Mi da due errori:
    1) non trova la server
    2) che non trova dao iml

    Visto che i progetti sono separati back end e fronte end
    Dovresti spiegare meglio questa "separazione" ... altrimenti detto così vuol dire poco.
  • Re: Caricamento dati tabella jstl

    Questo è l'errore che mi da:

    Type Exception Report

    Message Servlet execution threw an exception

    Description The server encountered an unexpected condition that prevented it from fulfilling the request.

    Exception

    javax.servlet.ServletException: Servlet execution threw an exception
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
    Root Cause

    java.lang.NoClassDefFoundError: it/sync/dao/jdbc/impl/CandidatoJdbcImpl
    it.sync.controller.CandidatoServlet.doGet(CandidatoServlet.java:24)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
    Root Cause

    java.lang.ClassNotFoundException: it.sync.dao.jdbc.impl.CandidatoJdbcImpl
    org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1275)
    org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1104)
    it.sync.controller.CandidatoServlet.doGet(CandidatoServlet.java:24)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
    Note The full stack trace of the root cause is available in the server logs.
  • Re: Caricamento dati tabella jstl

    Questo è l'errore nella console di java, che è lo stesso:

    INFORMAZIONI: Server startup in 12702 ms
    mar 06, 2018 9:18:26 AM org.apache.catalina.core.StandardWrapperValve invoke
    GRAVE: Servlet.service() for servlet [CandidatoServlet] in context with path [/StageSyncLabGestioneJdbcServletWeb] threw exception [Servlet execution threw an exception] with root cause
    java.lang.ClassNotFoundException: it.sync.dao.jdbc.impl.CandidatoJdbcImpl
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1275)
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1104)
    at it.sync.controller.CandidatoServlet.doGet(CandidatoServlet.java:24)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:651)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:409)
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:754)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1376)
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Unknown Source)
  • Re: Caricamento dati tabella jstl

    In pratica la parte back end è un progetto che ha i crud
    L'altro progetto, la parte front end con le servlet
    Dopo di che ho collegato il progetto front end con la parte back end
  • Re: Caricamento dati tabella jstl

    robot ha scritto:


    In pratica la parte back end è un progetto che ha i crud
    L'altro progetto, la parte front end con le servlet
    Dopo di che ho collegato il progetto front end con la parte back end
    Il progetto che ha le servlet è sicuramente un progetto di "web application" (che a livello di package finale genererebbe un .war). Mentre l'altro progetto cosa è materialmente? Un'altra webapp? Una "libreria" (jar) ?
  • Re: Caricamento dati tabella jstl

    No è solo la parte back end che ci sono i crud.
    In pratica tutto il progetto è una web app.

    L'errore me l'ho da qui:
    java.lang.NoClassDefFoundError

    vedi errori precedenti
  • Re: Caricamento dati tabella jstl

    robot ha scritto:


    No è solo la parte back end che ci sono i crud.
    In pratica tutto il progetto è una web app.
    E continui a non precisare le cose ...
    Se hai un NoClassDefFoundError, è perché la JVM non trova una classe, ovvio. Ora: quando fai un deploy della webapp (quella dove ci sono le servlet), essa ha modo di referenziare le classi dell'altro progetto "crud"??
    Evidentemente no ...

    Perché? Dipende da come hai impostato il tutto. Del progetto crud crei un jar? E questo jar è reso disponibile alla webapp? Se non è così .. quale/come è la situazione??
  • Re: Caricamento dati tabella jstl

    Se hai un NoClassDefFoundError, è perché la JVM non trova una classe, ovvio. Ora: quando fai un deploy della webapp (quella dove ci sono le servlet), essa ha modo di referenziare le classi dell'altro progetto "crud"??
    Si

    ho aggiunto il progetto in java build path --> project
    ho aggiunto il progetto in deployment assembly

    Dal progetto crud non creo la jar, è soltanto un normale progetto con i crud list
  • Re: Caricamento dati tabella jstl

    robot ha scritto:


    ho aggiunto il progetto in java build path --> project
    ho aggiunto il progetto in deployment assembly

    Dal progetto crud non creo la jar, è soltanto un normale progetto con i crud list
    Non l'hai precisato finora: IDE Eclipse giusto? E senza Maven (o altro build tool) giusto?

    Allora: se il progetto dove ci sono le operazioni crud è un normale "Java Project" (NON webapp o altro), allora è SUFFICIENTE che nell'altro progetto webapp, nelle proprietà di progetto alla sezione Deployment Assembly, vai ad aggiungere che referenzia l'altro progetto crud. Se guardi in quella sezione, nella colonna Deploy Path ti mette un jar sotto WEB-INF/lib. Questo jar è quello generato in automatico dal progetto crud ed andrà a finire appunto sotto WEB-INF/lib del progetto webapp.
    Il Build Path va già a posto da solo, non serve toccarlo a mano.
  • Re: Caricamento dati tabella jstl

    RISOLTO.
    IN PRATICA NON HO AGGIUNTO IL PROGETTO IN DEPLOYMENT ASSEMBLY
Devi accedere o registrarti per scrivere nel forum
12 risposte