Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Discussione: Javascript from java

  1. #1

    Javascript from java

    Ciao! Ho una pagina JSP in cui devo leggere periodicamente ed automaticamente dati da un bean. Ho pertanto pensato di usare un thread java che continuasse a leggere dal bean. Ora, altra cosa che devo fare (in java) è richiamare una funzione contenuta in un file Javascript, ma non so come accedere a questa funzione, online non trovo nulla..

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

    Re: Javascript from java

    Originariamente inviato da MarvinivraM
    Ciao! Ho una pagina JSP in cui devo leggere periodicamente ed automaticamente dati da un bean. Ho pertanto pensato di usare un thread java che continuasse a leggere dal bean.
    Non ha molto senso .... periodicamente quanto/quando?? bean messo dove?? in sessione??
    Il codice di una Servlet/JSP viene eseguito a seguito di una request da parte del client e una volta terminato l'invio della response, non viene più eseguito fino ad un'altra request. Quindi è ovvio che la tua JSP non è perennemente in esecuzione ... dipende dalle request.

    Originariamente inviato da MarvinivraM
    altra cosa che devo fare (in java) è richiamare una funzione contenuta in un file Javascript, ma non so come accedere a questa funzione, online non trovo nulla..
    Da Java lato server (JSP/Servlet) non puoi invocare nulla di Javascript .... perché Javascript è in esecuzione lato client nel browser. Il server genera dinamicamente una pagina, la invia al client ed è poi il browser che legge ed interpreta il codice Javascript.


    P.S. di tutto quello che hai chiesto, poco ha senso. Semmai cerca di spiegare meglio cosa pensavi fare.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    scusami ho cambiato direzione: ho creato un nuovo post in sezione javascript: la sostanza è che c'è un bean che cambia i proprio parametri periodicamente (dato di fatto). Io per fare un esempio, devo stampare su schermo ogni 5 secondi i cambiamenti subiti (nuovi valori dei parametri). Ora ho deciso di fare al contrario: un metodo javascript viene eseguito con periodicità. Però sono nuovamente fermo perchè non so come leggere i parametri del bean dal file .js ..

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da MarvinivraM
    Però sono nuovamente fermo perchè non so come leggere i parametri del bean dal file .js ..
    Devi fare chiaramente una "request" al server. In sostanza o fai programmaticamente il refresh della pagina (tramite Javascript ma puoi anche usare il tag <meta> per il refresh) o, senza fare il refresh completo della pagina, fai una request asincrona come viene fatto con AJAX.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    in tal modo non è semplice, per me, da capire, potresti farmi un modestissimo esempio? Come chiedo il valore di un bean tramite una request? forse intendi che devo creare una nuova jsp che visualizza i valori del bean e richiedere questa jsp al server, in modo da fare il parsing del risultato html ed andare a recuperare i miei valori?

  6. #6
    potresti farmi un esempio? non saprei che tipo di request effettuare..

  7. #7
    Utente di HTML.it L'avatar di Pastore12
    Registrato dal
    Oct 2008
    Messaggi
    1,051
    Sarebbe più semplice risponderti se dicessi se usi un framework come Struts, Spring o cos'altro.

    Hai un'idea di cosa accade nella tua web application quando premi un link? cioè quali classi vengono attivate e in che ordine?

    In base al framework che usi, se ne usi uno, ci sono più o meno classi che intervengono. La cosa importante è che hai sempre la possibilità di fare una chiamata al server non tanto per ottenere codice html, ma per ottenere bean o altri dati nella request. Il modo di farlo può essere abbastanza variegato...

    Poi, naturalmente, c'è AJAX...
    Non so cosa ti abbiano detto in javascript, ma potrebbe salvarti la vita adottare un framerwork javascript come jQuery. Le funzioni post, get e load sono un modo comodissimo di realizzare chiamate ajax.
    "Ethics are to me something private. Whenever you use it as an argument for why somebody_else should do something, you’re no longer being ethical, you’re just being a sanctimonious dick-head"
    Linus Torvalds

  8. #8
    ok l'ho fatto! E funziona, a meno di questo problema:

    da javacsript richiamo una jsp che dovrebbe recuperare i valori aggiornati del bean. Ora, se da browser navigo direttamente la pagina jsp ottengo i valori aggiornati, ma tramite la richiesta da javacript, i valori trasmessi rimangono credo quelli all'inizio dell'esecuzione..non riesco a capire come mai la lettura del bean possa avvenire in maniera diversa a seconda della provenienza della richiesta http..

    mi sapete aiutare?

  9. #9
    Utente di HTML.it L'avatar di Pastore12
    Registrato dal
    Oct 2008
    Messaggi
    1,051
    Potrebbe essere un problema di cache... ma sei sicuro che la chiamata ajax venga effettuata correttamente?
    "Ethics are to me something private. Whenever you use it as an argument for why somebody_else should do something, you’re no longer being ethical, you’re just being a sanctimonious dick-head"
    Linus Torvalds

  10. #10
    Si, la richiesta è ok

    function makeRequest(url) {
    http_request = false;
    if (window.XMLHttpRequest) { // FIREFOX
    http_request = new XMLHttpRequest();

    if (http_request.overrideMimeType) {
    http_request.overrideMimeType('text/xml');
    }
    }
    else if (window.ActiveXObject) { // IE
    try {
    http_request = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {try {http_request = new ActiveXObject("Microsoft.XMLHTTP");}
    catch (e) {}}
    }
    if (!http_request) {
    alert('Giving up Cannot create an XMLHTTP instance');
    return false;
    }
    http_request.onreadystatechange = alertContents;
    http_request.open('GET', url, true); // first parameter can be ‘GET’ or ‘POST’
    // second par is the url to be accessed
    // third say asynchronous yes or no
    http_request.send(null); // in case of POST the parameters are set
    // like: name=value&name=value&name=value
    }

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.