2010-04-25 10 views
8

Sto scrivendo una pagina web usando GWT. Ora ho bisogno di leggere un file di testo e visualizzare il contenuto nella pagina web, ma non ho idea di come farlo con GWT.Leggi il file di testo in google GWT?

È molto bello se c'è un modo in GWT di leggere il file .properties. (Si noti che questo non è il file delle proprietà di localizzazione che GWT ha già supportato)

Qualcuno ha un'idea, per favore?

Grazie.

risposta

10

È possibile leggere i file nel vostro GWT applicazione utilizzando RequestBuilder

new RequestBuilder(RequestBuilder.GET, "path/to/file.txt").sendRequest("", new RequestCallback() { 
    @Override 
    public void onResponseReceived(Request req, Response resp) { 
    String text = resp.getText(); 
    // do stuff with the text 
    } 

    @Override 
    public void onError(Request res, Throwable throwable) { 
    // handle errors 
    } 
}); 
+1

La leggibilità del file è limitato solo dalla configurazione del server è memorizzato su ('.htaccess', ecc) - fino a quando il file è disponibile al pubblico si può ottenere tramite' RequestBuilder'. Se non si desidera rendere pubblici i propri file per tutti, è possibile scrivere un servlet (o un servizio simile) che accede ai file memorizzati sul server (i file quindi non sono disponibili pubblicamente - solo per, ad esempio, gli utenti registrati). È possibile configurare il server in molti modi: servire i file solo su localhost, leggere i file da una cartella non www, ecc. –

+0

Un buon punto, modificato la mia risposta per riflettere questo. –

+0

Grazie a tutti per le vostre risposte. Tuttavia, ho avuto problemi come segue: ho fatto esattamente il codice sopra. Ho una cartella che contiene 3 file: abc.data, abc.file, net.properties. Volevo leggere il contesto del file net.properties, ma il codice sopra riportato restituisce sempre il contesto del file abc. E se questo file non esiste, è stata generata un'eccezione, anche se si specifica il percorso come http://127.0.0.1:8080/path/net.properties. Qualche idea, per favore? – ipkiss

1

Se il file di testo è parte del progetto GWT, è possibile includere in un ClientBundle. Se non fa parte del tuo progetto, allora lo RequestBuilder suona come la risposta giusta.

Ho inviato un semplice example project per mostrare come utilizzare un Cliente.

String greetings = Assets.INSTANCE.greetings().getText(); 
final Greeter greeter = new Greeter(); 
greeter.loadGreetings(Arrays.asList(greetings.split("\\n")));