Esercizi java ee - slide - manuale pratico

di il
19 risposte

19 Risposte - Pagina 2

  • Re: Esercizi java ee - slide - manuale pratico

    robot ha scritto:


    1) La libreria jstl l'ho inserito all'inizio che è questo: <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/cor" %>
    Ok ma devi anche aver messo i jar necessari per JSTL nella WEB-INF/lib

    robot ha scritto:


    Giusto, a questo ancora non ho capito come si estrae i dati, qual'è la sintassi corretta?, come bisgona scrivere? visto che sono confuso.
    Il modo è quello che hai usato

    rSet.getXXXX("nome")

    Dove getXXXX è chiaramente uno dei metodi del ResultSet. E nome deve essere un nome della colonna estratta. Se hai fatto select * allora hai direttamente i nomi fisici delle colonne. Quindi se una colonna si chiama id_rubricatelefono ed è di tipo int, allora dovrai fare

    rSet.getInt("id_rubricatelefono")

    Che puoi assegnare con il setter per il id. Tutto qui.
  • Re: Esercizi java ee - slide - manuale pratico

    Visto che il progetto l'ho convertito in MAVEN:

    Questo è la modifica che ho fatto:
    
    //Lista Rubrica
    	public List<RubricaTelefonica>listaRubrica() throws SQLException{
    		List<RubricaTelefonica>rubricaTelefonicas = new ArrayList<>();
    		Connection con = DatabaseJdbc.getConnection();
    		
    		String sql = "select * from rubricatelefono";
    		PreparedStatement pr = (PreparedStatement) con.prepareStatement(sql);
    		ResultSet rSet = pr.executeQuery();
    		
    		while(rSet.next()) {
    			RubricaTelefonica rubricaTelefonica = new RubricaTelefonica();
    			rubricaTelefonica.setId(rSet.getInt("id_rubricatelefono"));
    			rubricaTelefonica.setNome(rSet.getString("nome"));
    			rubricaTelefonica.setCognome(rSet.getString("cognome"));
    			rubricaTelefonica.setLocalita(rSet.getString("localita"));
    			rubricaTelefonica.setTelefono(rSet.getString("telefono"));
    			rubricaTelefonicas.add(rubricaTelefonica);
    		}
    		return rubricaTelefonicas;	
    	}
    
    

    Inoltre nel file POM, per scaricare i driver è il seguente:
    
    <dependencies>
    		<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
    		<dependency>
    			<groupId>mysql</groupId>
    			<artifactId>mysql-connector-java</artifactId>
    			<version>5.1.6</version>
    		</dependency>
    
    		<!-- https://mvnrepository.com/artifact/jstl/jstl -->
    		<dependency>
    			<groupId>jstl</groupId>
    			<artifactId>jstl</artifactId>
    			<version>1.2</version>
    		</dependency>
    		
    		<dependency>
    			<groupId>javax.servlet</groupId>
    			<artifactId>jstl</artifactId>
    			<version>1.2</version>
    		</dependency>
    		
    
    		<dependency>
    			<groupId>javax.servlet</groupId>
    			<artifactId>javax.servlet-api</artifactId>
    			<version>3.0.1</version>
    			<scope>provided</scope>
    		</dependency>
    
    	</dependencies>
    
    
    
    

    Questa è la mia pagina index.jsp:
    
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    	pageEncoding="ISO-8859-1"%>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
    <%@  page import="java.util.* , model.RubricaTelefonica"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Rubrica Telefonica</title>
    </head>
    <body>
    
    
    	<div align="center">
    		<table border="1" align="center">
    			<tr>
    				<td>Id</td>
    				<td>Nome</td>
    				<td>Cognome</td>
    				<td>Località</td>
    				<td>Telefono</td>
    			</tr>
    
    			<tr>
    				<c:forEach var="ex" items='${listavisualizza}'>
    					<td><c:out value='${ex.id}' /></td>
    				</c:forEach>
    			</tr>
    
    			<tr>
    				<c:forEach var="ex" items='${listavisualizza}'>
    					<td><c:out value='${ex.nome}' /></td>
    				</c:forEach>
    			</tr>
    
    			<tr>
    				<c:forEach var="ex" items='${listavisualizza}'>
    					<td><c:out value='${ex.cognome}' /></td>
    				</c:forEach>
    			</tr>
    
    			<tr>
    				<c:forEach var="ex" items='${listavisualizza}'>
    					<td><c:out value='${ex.localita}' /></td>
    				</c:forEach>
    			</tr>
    
    			<tr>
    				<c:forEach var="ex" items='${listavisualizza}'>
    					<td><c:out value='${ex.telefono}' /></td>
    				</c:forEach>
    			</tr>
    
    		</table>
    	</div>
    </body>
    </html>
    
    
    Ho notato ancora non prende i dati per fare uscire in output nella tabella.
  • Re: Esercizi java ee - slide - manuale pratico

    robot ha scritto:


    		<!-- https://mvnrepository.com/artifact/jstl/jstl -->
    		<dependency>
    			<groupId>jstl</groupId>
    			<artifactId>jstl</artifactId>
    			<version>1.2</version>
    		</dependency>
    		
    		<dependency>
    			<groupId>javax.servlet</groupId>
    			<artifactId>jstl</artifactId>
    			<version>1.2</version>
    		</dependency>
    
    Giusto per chiarirti: mvnrepository.com non è un repository Maven ... è un search engine per gli artifact. Maven prende gli artifact per default dal Central repository (https://repo.maven.apache.org/maven2)

    E poi comunque hai inserito un doppione, togli la prima dependency per jstl e tieni la seconda.

    robot ha scritto:


    
    			<tr>
    				<c:forEach var="ex" items='${listavisualizza}'>
    					<td><c:out value='${ex.id}' /></td>
    				</c:forEach>
    			</tr>
    [....]
    Sappi che questo che hai fatto è inadatto e assurdo. Il forEach ti deve servire per generare N <tr> ... non N <td> in righe distinte!!!
    Rivedi l'esempio mio che ti avevo linkato!!


    E poi comunque, scusa, stai "debuggando"? Stai provando ad eseguire passo passo il codice per vedere se gli oggetti RubricaTelefonica vengono popolati correttamente?
  • Re: Esercizi java ee - slide - manuale pratico

    Ciao,
    Ho modificato tutto, ed ho fatto tutto quello che mi hai detto di fare.
    
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    	pageEncoding="ISO-8859-1"%>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
    <%@  page import="java.util.* , model.RubricaTelefonica"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Rubrica Telefonica</title>
    </head>
    <body>
    
    	<div align="center">
    		<table border="1" align="center">
    			<tr>
    				<td>Id</td>
    				<td>Nome</td>
    				<td>Cognome</td>
    				<td>Località</td>
    				<td>Telefono</td>
    			</tr>
    
    			<c:forEach var="ex" items="${listavisualizza}">		
    			<tr>
    				<td><c:out value="${ex.id_rubricatelefono}" /></td>
    			</tr>
    			
    			<tr>
    				<td><c:out value="${ex.nome}" /></td>
    			</tr>
    				
    			<tr>
    				<td><c:out value="${ex.cognome}" /></td>
    			</tr>
    			
    			<tr>
    				<td><c:out value="${ex.localita}" /></td>
    			</tr>
    			
    			<tr>
    				<td><c:out value="${ex.telefono}" /></td>
    			</tr>
    			</c:forEach>
    			
    		</table>
    	</div>
    
    </body>
    </html>
    
    
    Non mi da nessun errore e non si popola la tabella.

    Come ve lo posso inviare il file Zip del progetto?


    grazie
  • Re: Esercizi java ee - slide - manuale pratico

    robot ha scritto:


    ho fatto tutto quello che mi hai detto di fare.
    E continui a sbagliare ....

    Hai di nuovo sbagliato la generazione delle righe (ora per ciascun oggetto generi N righe con ciascuna 1 colonna ... NON è questo che serve).
    E hai di nuovo messo ex.id_rubricatelefono che è di certo sbagliato (se hai getId/setId nella classe allora la proprietà è id, non certo id_rubricatelefono)

    Scusa ma a parte la jsp, hai DEBUGGATO passo passo per vedere se perlomeno il List<RubricaTelefonica> è popolato correttamente? Se è corretto, allora possiamo parlare della JSP. Se già la lista non ha i dati corretti .... non so che dirti.
Devi accedere o registrarti per scrivere nel forum
19 risposte