Visualizzazione dei risultati da 1 a 10 su 10

Discussione: Refresh image src

  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2010
    Messaggi
    88

    Refresh image src

    Salve a tutti,
    stavo studiando il modo di gestire le path di un'immagine mediante lato server...
    ho creato la mia servlet e nel metodo init() ho inizializzato la classe che contiene una arraylist di stringhe contenente le mie immagini...
    tramite ajax richiamo un metodo in doGet che imposta come out l'immagine che scelgo tramite una request...
    nella console di internet vedo la chiamata e noto che la path viene inserita dove voglio senza problemi ma in realtà il DOM rimane con la vecchia immagine e non risente del cambiamento... come posso fare?

    codice:
    <div id="myfoto" onclick=carica()>
    <img id=lista src="<%= mybean.getFoto()" />
    </div>
    
    <script>
     $.ajax({
           url:"FotoServlet",
           type: "GET",
           data:{foto:1}
           success:function(){
                 $('#lista').attr('src',function(index,attr){
                         return attr.replace('img/Copertina.png',"<%= mybean.getFoto()");
                 });
            }
     });

    p.S. img/Copertina.png è di default che viene inizializzata quando creo la nuova istanza
    Ultima modifica di LeleFT; 18-03-2014 a 11:10 Motivo: Aggiunti i tag CODE

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da betis85 Visualizza il messaggio
    codice:
           success:function(){
                 $('#lista').attr('src',function(index,attr){
                         return attr.replace('img/Copertina.png',"<%= mybean.getFoto()");
                 });
            }
    Per quanto si può vedere qui, intuisco che la seconda stringa, quella che vuoi applicare, non deriva dalla chiamata ajax ma da quando la pagina è stata generata.
    Non è comunque l'approccio corretto. La risorsa invocata tramite ajax, dovrebbe fornirti una response text/XML/JSON (insomma, quello che ti fa comodo) che contiene il url della immagine. E questo devi usare, tra l'altro senza fare alcun replace, che non serve. E credo non serva nemmeno la function di callback. Semplicemente passi il nuovo value di src al attr().
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2010
    Messaggi
    88
    La response come dovrebbe essere? Puoi farmi per favore un esempio stupido? Grazie in anticipo

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da betis85 Visualizza il messaggio
    La response come dovrebbe essere? Puoi farmi per favore un esempio stupido? Grazie in anticipo
    Mah .. JSON ad esempio:
    codice:
    { "imgUrl": "blabla/xyz.png" }
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2010
    Messaggi
    88
    Ma quindi dentro la servlet cosa dovrei mettere? Di conseguenza come richiamo la risp in js?

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da betis85 Visualizza il messaggio
    Ma quindi dentro la servlet cosa dovrei mettere? Di conseguenza come richiamo la risp in js?
    Scusa la domanda ma .... guardando bene il tuo script, deduco che la richiesta ajax viene fatta una volta sola subito quando il codice script viene eseguito. Insomma, non è fatta in un secondo momento a seguito di qualche evento.
    E quindi ..... a che ti serve ajax?
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2010
    Messaggi
    88
    si scusa, mi sono dimenticato la parte function carica()...

  8. #8
    Utente di HTML.it
    Registrato dal
    Aug 2010
    Messaggi
    88
    tramite console noto che la get mi ritorna le path, ma non aggiorna il DOM

  9. #9
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da betis85 Visualizza il messaggio
    Ma quindi dentro la servlet cosa dovrei mettere? Di conseguenza come richiamo la risp in js?
    Per la pagina in sé, potrebbe essere o direttamente una JSP oppure (meglio e anzi più preferibile) Servlet->JSP.
    Per la richiesta ajax, un'altra Servlet che fornisce il dato in JSON (o ripeto, qualunque formato che ti faccia comodo).

    Quote Originariamente inviata da betis85 Visualizza il messaggio
    si scusa, mi sono dimenticato la parte function carica()...
    tramite console noto che la get mi ritorna le path, ma non aggiorna il DOM
    Non posso comunque avere una idea chiara di tutto quanto hai scritto ..... l'unico dubbio è: stai cercando di modificare il DOM dopo che è stato caricato .... o prima?
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  10. #10
    Utente di HTML.it
    Registrato dal
    Aug 2010
    Messaggi
    88
    Sto cercando di refreshare il dom dopo il caricamento... Ho il collegamento jsp->servlet

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.