Ich rufe das Servlet über href in meiner .vm-Datei auf (da ich velocity framwork für das Frontend verwende), wenn die Anfrage an das Servlet geht, auf das ich eine Datei herunterlade. Die Dateigenration für den Download dauert ungefähr 30 Sekunden, also möchte ich den Endbenutzer über ein Pop-up-Fenster angeben. Dazu habe ich eine Funktion auf derselben href in meiner .vm-Datei aufgerufen, die ein Popup-Fenster öffnet, das anzeigt, dass die Datei gerade erzeugt Warten Sie mal. aber wenn die Dateierzeugung und der Download beendet sind, möchte ich das Popup entfernen. Ich wurde versucht, dies durch Umleitung auf Servlet, aber nach dem Googeln fand ich, dass wir den Status der Antwort nach dem Download nicht ändern können ( link ).
Ich rufe JavaScript-Funktion und Servlet in meiner VM-Datei wie folgt
%Vor%overriverulehandler ruft mein Servlet auf und ich bereite Datei für den Download vor und reportResponse ist JS-Funktion, in der ich popup öffne.
Bitte schlage mir vor, wie ich diese Aufgabe machen soll. Wenn jemand eine andere Idee dazu hat, bitte teilen. Jede Hilfe wird geschätzt.
Dieser onClick-Handler funktioniert für mich.
%Vor%Sie können es in Ihr Anker-Tag einfügen, das Ihr Servlet aufruft, und die gekapselte anonyme Funktion kann jede andere Funktion aufrufen, die Ihnen gefällt. "test.html" könnte eine Seite sein, auf der steht: "Ihre Datei wird vorbereitet und in Kürze heruntergeladen.
Der Inhaltstyp der Antwort auf dem Servlet sollte dem Dateityp entsprechen, den Sie drücken, damit der Browser weiß, dass er die Datei herunterladen soll, anstatt zu versuchen, sie zu öffnen.
Die Methode, die ich nach dem Download umleiten konnte, besteht darin, zwei verschiedene html / javascript / JQuery Event-Handler zu verwenden. Der Redirect-Handler ist der Download selbst Onmousedown. Also, mit der Maus nach unten wird die js ein PDF erzeugen und herunterladen, dann wird die Weiterleitung ausgeführt. Dank sei Gott, es funktioniert ... ziemlich einfach zu implementieren.
%Vor%Segen!
Tags und Links javascript java servlets