Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    [JSP] Tabella di TextField per modificare valori in un database?

    Salve!

    Vorrei fare una JSP che dopo aver lanciato una query al database mi mostrasse il risultato in una tabella di TextField modificabili, per poi rendere le modifiche persistenti sul database.

    Fino ad ora il codice che ho scritto si limita a mostrare i risultati della query in una tabella, ma ovviamente non ho la possibilità di modificare alcun dato.

    La mia tabella è molto semplice, ha 2 attributi e una quindicina di righe e vorrei aggiungere in fondo alla tabella un bottone che mi renda persistenti eventuali modifiche effettuate.

    È possibile fare questa cosa? O meglio, si possono "produrre" dei campi di testo all'interno di una tabella, con la JSP in modo che poi tutti i dati vengano inviati ad una query (ciclica) di update?

    EDIT: le text field, le metto con input type text, OK, ma poi il resto è fattibile?

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: [JSP] Tabella di TextField per modificare valori in un database?

    Originariamente inviato da fbcyborg
    O meglio, si possono "produrre" dei campi di testo all'interno di una tabella, con la JSP in modo che poi tutti i dati vengano inviati ad una query (ciclica) di update?
    Certo, basta "buttare" in output nel documento HTML che si sta generando un:

    <input type="text" value="...valoreiniziale..." ...altri-attributi...>

    E chiaramente ci si dovrebbe preoccupare di iniettare il contenuto del value convertendo i caratteri speciali in entità. Sarebbe preferibile sfruttare JSTL con il suo <cut> o altra tag library.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3

    Re: Re: [JSP] Tabella di TextField per modificare valori in un database?

    Originariamente inviato da andbin
    Certo, basta "buttare" in output nel documento HTML che si sta generando un:

    <input type="text" value="...valoreiniziale..." ...altri-attributi...>
    Perfetto. Questo è fatto! GRAZIE!

    E chiaramente ci si dovrebbe preoccupare di iniettare il contenuto del value convertendo i caratteri speciali in entità. Sarebbe preferibile sfruttare JSTL con il suo <cut> o altra tag library.
    Ecco, qui la mia inesperienza con le JSP mi blocca. Ho iniziato da poco con le JSP quindi ancora non ho mai toccato questo argomento. Mi potrebbe facilitare il compito questa cosa?
    Le uniche cose simili a quanto da te menzionato mi sembra di averle viste per quel che riguarda il passaggio dei parametri da una jsp all'altra, ma niente di più.

    Ho iniziato a leggere qualcosa su JSTL e mi sembra molto interessante. Bisogna vedere quanto complicato è affinché io riesca ad impararlo in un tempo ragionevole e ad applicarlo a questo codice che sto scrivendo.

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Re: Re: [JSP] Tabella di TextField per modificare valori in un database?

    Originariamente inviato da fbcyborg
    Ho iniziato a leggere qualcosa su JSTL e mi sembra molto interessante. Bisogna vedere quanto complicato è affinché io riesca ad impararlo in un tempo ragionevole e ad applicarlo a questo codice che sto scrivendo.
    qui avevo postato un esempio con JSTL per iterare su una collezione di oggetti e mandare in output i valori delle proprietà. Ti dà comunque l'idea di quello che si deve scrivere (che in effetti non è molto, a parte la installazione iniziale della libreria JSTL).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    OK, grazie! Ho letto il thread che mi hai segnalato.

    Stavo vedendo anche questo esempio ma anche altri per capire meglio.
    A proposito, ma è un progetto obsoleto questo JSTL? Ho visto che è più di un anno che Jakarta-Taglibs è "retired". Comunque in JBoss è già presente il jar jboss-jstl-api_1.2_spec-1.0.1.Final.jar. Al limite posso usare quello nella dir lib/ del mio progetto.

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da fbcyborg
    A proposito, ma è un progetto obsoleto questo JSTL? Ho visto che è più di un anno che Jakarta-Taglibs è "retired".
    JSTL è innanzitutto una specifica ... poi ci sono le implementazioni. Quella di Apache in effetti è in quello stato da un po' di tempo. (ma sarebbe tuttora utilizzabile).
    La implementazione "ufficiale" mi pare sia su http://jstl.java.net ma personalmente in questo momento non riesco a raggiungere il sito.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Neanche io, non carica.
    Attenderò. Nel frattempo mi sto leggendo dei tutorial. Devo capire bene come usare queste librerie nella mia semplice applicazione. Non avendo molta esperienza e non avendo mai sentito parlare di JSTL prima d'ora, capirai che magari cado in errori anche stupidissimi.

    Intanto, ho preparato un bottone nella JSP che poi sarà quello che mi scatenerà l'UPDATE sulla tabella, ma ora sto cercando di capire come fare in modo che al click su di esso mi venga ricaricata la stessa JSP, e ovviamente gli devo ripassare come parametri, username e password per l'accesso al DB.

    Da qualche parte ho letto che si può usare session.

  8. #8
    Alla fine sono riuscito a risolvere usando session e senza usare JSTL.

    È venuto un lavoro abbastanza pulito, data anche la semplicità dell'applicazione.
    Non nascondo che seppur sia una applicazione semplice, mi ha fatto penare.
    Ma meglio così, mi resteranno impressi gli errori fatti e le soluzioni trovate!

  9. #9
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da fbcyborg
    Alla fine sono riuscito a risolvere usando session e senza usare JSTL.
    Ma il contenuto dell'attributo value lo generi correttamente usando eventualmente le entità per i caratteri speciali? È questo che conta .... non tanto se usi o no JSTL.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  10. #10
    Credo di aver sottovalutato la cosa, comunque ecco come ho fatto per generare la tabella che mostra i valori di cui poi fare una POST:

    codice:
    [ottengo i valori di username e password per il DB]
    
    <form name="f" action="doupdate.jsp" method="POST">
    	<table BORDER="1">
    		<tr><th>Nr.</th><th>attributo1</th><th>attributo2</th></tr>
    		<%
    		try{	    
    			String MY_URL = "jdbc:mysql://localhost/nomedatabase";
    			Class.forName(MY_DRIVER);
    			Connection c = DriverManager.getConnection(MY_URL,LOGIN, PASSWD);
    			Statement s = c.createStatement();
    			ResultSet rs = s.executeQuery("SELECT id, attr_1, attr_2 FROM nome_tabella");
    			String attr_1="", attr_2="";
    			int row=0;
    			while(rs.next()){
    				attr_1 = rs.getString("attr_1");
    				attr_2 = rs.getString("attr_2");
    				row = rs.getInt("id");
    			%>
    			<tr><td><input type="text" name="id<%=row %>" value="<%=row %>" size="2" READONLY/></td>
    			<td><input type="text" name="attr_1<%=row %>" value="<%=attr_1 %>" size="50"/></td>
    			<td><input type="text" name="attr_2<%=row %>" value="<%=attr_2 %>" style="text-transform:uppercase;" onkeyup="this.value=this.value.toUpperCase()"/></td></tr>
    			
    			<% 
    			}
    			session.setAttribute("username", LOGIN);
    			session.setAttribute("password", PASSWD);
    			
    		}catch (SQLException s){
    			// se cado qui, in genere era per username o password errate
    			response.sendRedirect("loginfailed.jsp");
    		}
    	%>
    	</table>
    	
    
    	<input type="submit" value="Aggiorna">
    </form>
    Poi alla pressione del tasto Aggiorna vengo reindirizzato ad un'altra JSP che effettua l'update e che poi mi rimanda a questa JSP che mostra i risultati.

    Comunque problemi con caratteri speciali mi pare di non averne avuti. Non è previsto l'uso di doppi apici e lettere con la dieresi le prende senza problemi. Al limite potrei inserire un javascript che mi mostra un messaggio che impedisce l'uso di caratteri speciali.

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.