Ich habe mein ExportServlet, das XLSX-Dateien (Excel) erzeugt, die mein Benutzer von meiner GWT-Anwendung durch Klicken auf eine Export-Schaltfläche anfordern wird.
Wenn ich den GET-Ansatz verwende, wird der Benutzer aufgefordert, die Datei herunterzuladen. Der Code sieht so aus:
%Vor%Dies wird vom GWT-Client auf folgende Weise aufgerufen:
%Vor%und der Benutzer wird aufgefordert, die Datei herunterzuladen. Gut, das ist was ich will:)
Aber ich möchte eine Menge Daten in der Anfrage anhängen, und afaik, es gibt eine Grenze dafür, wie viele Daten Sie in einen URL-Parameter ("ExportServlet? data = ...") setzen können, also würde ich möchte das stattdessen in eine POST-Anfrage einfügen.
Ich habe Folgendes von GWT ausprobiert:
%Vor%und das in meinem Servlet:
%Vor%, aber der Benutzer wird nicht aufgefordert, die Datei herunterzuladen. Die doPost-Methode wird aufgerufen und die Daten werden vom Servlet empfangen, aber soll ich die XLSX-Datei aus der Antwort extrahieren, die ich in der GWT-App erhalte? und wie soll ich das tun?
Schätzen Sie jede Hilfe oder Kommentare:)
Ok, also ging ich mit dem 3. Ansatz in der verknüpften SO-Frage.
Erstellen Sie ein FormPanel, legen Sie Ihre Daten in versteckte Felder, legen Sie die URL zu Ihrem Servlet fest, rufen Sie die Methode submit programmatisch auf dem Formular auf und das beschriebene Problem in dieser SO-Frage wird gelöst.
Details zum Extrahieren von Daten aus den ausgeblendeten Feldern:
So sieht mein doPost ähnlich aus:
%Vor%Ich habe ein verstecktes Feld in meinem Formular mit dem Namen "fieldName", wo die Daten abgelegt und an das Servlet übergeben werden. Hoffe das hilft:)
Hi Ich habe genau das gleiche Problem und löse es, indem ich das Servlet direkt benutze
Window.Location.replace(URL.encode(servletUrl));
Überprüfen Sie auch diesen Link this related