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

    [J2ME] Visualizzazione da Servlet

    Ragazzi ho bisogno di aiuto...praticamente voglio far visualizzare in una midlet degli Item presi da db ed elaborati da una servlet...
    ecco il codice:

    codice:
    while ( resultsRS.next() ) {
    		 		// salvo l'id dell'item da raccomandare nel vettore itR
    				id = resultsRS.getInt( 1 );	
    				sql4 = "INSERT INTO lastRec(user,item,visitato) VALUES('" + utente + "','" + id + "','No');";
    				statement2.executeUpdate( sql4 );
    				itR[i] = id;
    				i++;				 
    			 }
    			resultsRS.close();
    
    			
    			ResultSet dettagli;
    		    String sql3;		
    			
    		    this.numItemRaccomandati = i;
    			for (int j=0; j<this.numItemRaccomandati; j++) { 
    				System.out.println("itR[" + j + "]: " + itR[j] + " ");
    				id = itR[j]; // id dell'item raccomandato
    				
    				// in base all'id visualizzo un'immagine diversa
    				if ((id>=1) && (id<=8)) URLimg = "chiesa.jpg";
    				if ((id>=9) && (id<=14)) URLimg = "museo.jpg";
    				if ((id>=15) && (id<=25)) URLimg = "piazza.jpg";
    				if ((id>=26) && (id<=32)) URLimg = "castello.jpg";
    				
    				// dettagli sull'item corrente
    				sql3 = "SELECT * FROM item WHERE itemId='" + id + "';";
    				dettagli = statement.executeQuery( sql3 );
    				dettagli.next();
    				nomeLuogo = dettagli.getString(2);
    				latitem = dettagli.getDouble(13);
    				longitem = dettagli.getDouble(14);
    			
    				// qui va calcolata la distanza tra l'utente e l'item j
    				//distanza(double lat1, double longit1, double lat2, double longit2)
    				double dist = distanza(n,m,latitem,longitem);
    				dist = round(dist,2);
    				
    				out.println("<tr>");
    				out.println("<td>[img]" + URLimg + "[/img]</td>");
    				out.println("<td><a href=\"javascript:mostra("+id+");\"> " + nomeLuogo + " </a></td>");
    				out.println("</tr>");
    				
    				out.println("<tr>");
    				out.println("<td width='100%' colspan=2>");
    				out.println("<div id='descr"+id+"'> ");
    				out.println(" <p id='descr'>Nome del luogo: " + nomeLuogo + "</p>"); 
    				out.println(" <p id='descr'>Tipo: " + dettagli.getString(3) + "  " + dettagli.getString(4) + "</p>");			
    				out.println(" <p id='descr'>Indirizzo: " + dettagli.getString(5) + "</p>");
    				out.println(" <p id='descr'>Città: " + dettagli.getString(6) + "</p>");
    				
    				out.println(" <p id='descr'>Distanza da te: " + dist + " KM</p>");
    				
    				out.println(" <p id='descr'>Orario apertura: " + dettagli.getString(9) + "</p>");
    				out.println(" <p id='descr'>Orario apertura: " + dettagli.getString(10) + "</p>");
    				out.println(" <p id='descr'>Sito web: " + dettagli.getString(11) + "</p>");
    				out.println(" <p id='descr'>Descrizione: " + dettagli.getString(12) + "</p>");
    				out.println("</div>");	
    				out.println("</td>");
    				out.println("</tr>");
    				URLimg = null;
    			} 
    		 
    		out.println( "</table>" );
    		out.println( "
    
    " );
            resultsRS.close();
             
            out.println( "</body></html>" );         
            out.close();
    oltre a essere difficile di suo ci si mette anke il il file javascript in cui cè la funzione mostra() ...il codice è qsto:

    codice:
    function mostra(j) { 
    
    		 var divd = document.getElementById('descr'+j); 
    	
    		 while (divd.style.display == "") {
    		   divd.style.display = "block";
    		   return; 
    		  } 
    		  while (divd.style.display == "block") {
    		   divd.style.display = "none";
    		   return; 
    		 } 		 
    		  while (divd.style.display == "none") {
    		   divd.style.display = "block";
    		   return; 
    		 } 		 
    	 }
    cm faccio a farlo visualizzare gli item sulla midlet con tanto di click sul relativo item?
    so piu o meno cm mandare stringhe da una servlet a una midlet...ma qui cè un ciclo for di mezzo e nn solo...

  2. #2
    ragazzi il problema della visualizzazione del relativo oggetto lo risolta(almeno logicamente).
    Il problema è che sto cercando di capire cm far comunicare midlet e servlet per visualizzare i contenuti di un db.
    Praticamente nella servlet i risultati vengono stampati purtroppo in html(basta vedere il codice che ho messo in alto) e invece adesso mi serve ottenere quei dati(pensavo a un array o un record) per poterli mandare alla midlet e visualizzarli li...cm posso fare?

  3. #3
    cioe la sequenza delle cose da fare è qsta:

    1)servlet che recupera i campi del database(gia fatto)
    2) concatenare i campi ciascuno con un carattere speciale, i% l'uso, in una stringa intera.
    es: nome cognome%%% indirizzo ...(utilizzando un record)
    3)quindi inviare l'intera stringa al client J2ME.
    4)sul lato client, de-concatenare la stringa nei campi originale.
    5)assegnare ciascun campo ad un campo di testo.
    6) Modificare i campi sul client.
    7) concatenare poi di nuovo tutti i campi in una stringa e inviare alla servlet per aggiornare il db


    DATEMI ALMENO QUALCHE ESEMPIO UN QUALCOSA CHE MI PERMETTA DI CAPIRE COSA FARE PERCHE LE STO PROVANDO TUTTE....

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Non capisco quale sia il problema nei punti 2 e 3.
    Invece di far sputare in output delle stringhe che rappresentano un file HTML, farai sputare in output una sola stringa risultato della concatenazione delle informazioni che ti servono:

    codice:
    StringBuffer sb = new StringBuffer();
    ...   // concatenerai tutte le informazioni all'interno del StringBuffer
    
    out.println( sb.toString() );   // Sputi in output la stringa
    Fine.

    Il resto sta a te...


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    grz Lele finalmente qualcuno ke risp

    il punto 3 lo risolto...devo provare quello che hai detto riguardo il punto 2.
    stavo pensando di mandare dalla servlet direttamente tt il record ma nn si puo fare(a quanto ne so )
    praticamente devo utilizzare la string buffer inserendo i campi del record(o result set) con i comandi getString...no?

    x quanto riguarda la DECONCATENAZIONE?

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Originariamente inviato da umegg
    stavo pensando di mandare dalla servlet direttamente tt il record ma nn si puo fare(a quanto ne so )
    In realtà si potrebbe anche fare, ma non so quanto sia comodo da gestire poi (non conosco le Midlet)

    praticamente devo utilizzare la string buffer inserendo i campi del record(o result set) con i comandi getString...no?
    Sì, ottieni tutti i campi usando getString() (ma puoi anche usare il getter più corretto per il particolare tipo di campo e poi gestire a parte la conversione a String... come vuoi) e poi li concateni... un suggerimento: usa un separatore per i campi, come ad esempio un TAB oppure il punto e virgola, così ti semplifichi la vita dopo

    x quanto riguarda la DECONCATENAZIONE?
    Se hai usato un buon separatore di campo (come, ad esempio, il punto e virgola), puoi utilizzare il metodo "split()" della classe String per "deconcatenare":

    codice:
    String strOttenutaDallaServlet = ...;
    
    // Suppongo che ciascun campo sia separato dal punto e virgola
    String[] campi = strOttenutaDallaServlet.split(";");
    
    // Ora hai un array di String contenenti tutti i valori dei vari campi
    for(String campo : campi) {
       // fai quel che vuoi con il singolo campo
    }
    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  7. #7
    ragazzi altro episodio di qsta ODISSEA

    praticamente devo mandare qsta MEGASTRINGA...pero il problema è che inserendo i dati di un resultset precedentemente utilizzato,la stringa rimane vuota...sto cercando di capire il perche:

    codice:
    ResultSet dettagli=null;
    		    String sql3;
    
    ///////////
    for (int j=0; j<this.numItemRaccomandati; j++) {
          System.out.println("itR[" + j + "]: " + itR[j] + " "); 
    			id = itR[j];
    			
    			 
    			sql3 = "SELECT * FROM item WHERE itemId='" + id + "';";
    			 
    				dettagli = statement.executeQuery( sql3 );
    				dettagli.next();
    
    
    concatenata=dettagli.absolute(1)+"ç"+dettagli.getString(1)+"ç"+dettagli.getString(2)+"ç"+dettagli.getString(3)+"ç"+dettagli.getString(4)
            +"ç"+dettagli.getString(5)+"ç"+dettagli.getString(6)+"ç"+temp[0]+"ç"+dettagli.getString(9)+"ç"+dettagli.getString(10)+"ç"+dettagli.getString(11)+"ç"+dettagli.getString(12)
    poi dopo qsto la invio alla servlet...se infatti metto qualsiasi altra stringa tt funz...ma se metto quello....no
    dov è l'inghippo?

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.