Zum Inhalt springen

KennyZorro

Mitglieder
  • Gesamte Inhalte

    9
  • Benutzer seit

  • Letzter Besuch

  1. Hallo, dass geht leider nicht. Nach dem Klick auf den Export soll sofort der speichern unter Dialog kommen. Ein weiterer Klick auf einen Button o.Ä darf nicht sein.
  2. Hallo, dass verstehe ich leider nicht ganz. Die Datei kann nicht alleinig von JS erstellt werden weil Daten vom Server geladen werden müssen. (Ajax ausgenommen) Dazu soll die Datei nur erstellt werden, wenn sie auch angefordert wurde.. Wir reden hier immerhin von 10.000 Zeilen mit knapp 20 Datenfeldern.. Das generieren dauert ein wenig..
  3. Ich verstehe nicht was eine Datenbank damit zu tun hat? Die Daten kommen aus einer Datenbank - sie werden bei der Suchabfrage gelesen, in einem Manager gehalten und auf der JSP-Seite ausgegeben. Das Servlet holt die Daten nur wieder aus dem Manager und verarbeitet diese zu einem CSV-String.
  4. Also doch mit Ajax Aber ganz so klappt es nicht nicht - es gibt keine CSV-Datei die auf dem Server liegt. Die Datei wird immer nur Temporär generiert und direkt in das Response geschrieben. Der link schaut so aus: programm/servlet?do=export Das Servlet läd sich die Daten aus dem Manager und baut mithilfe von Json einen CSV-String. Der String wird dann, wie oben in dem Schnipp zu sehen, einfach in das response geschrieben und der header umgeschrieben. Wie muss der Aufruf aussehen und was muss ich am Servlet ändern? Auf dem Server können keine Dateien erstellt werden.
  5. Das wäre genau der Teil den ich in das Ende von dem Ajax-Call packen würde. Also ich weiß nicht, wie ich einer bereits geladenen Seite klar machen soll, dass ein weiterer request Grade vom Server bearbeitet wurde und eine Datei zurück geliefert hat. Wie soll die Seite auf der der link zum erzeugen ist mitkriegen, dass die Datei zum Download bereit steht?
  6. Schnipp: ... // Response erstellen und mit CSV-Download füllen resp.reset(); resp.setHeader("Content-disposition", "inline; filename=eingang.csv"); resp.setContentLength(csvContent.length()); resp.setCharacterEncoding("iso-8859-1"); resp.setContentType("text/csv"); BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(resp.getOutputStream(), "iso-8859-1")); writer.write(csvContent.toString()); writer.flush(); writer.close(); Das ist ein Auszug aus dem Servlet welches sich um die Verarbeitung des Requests kümmert. Vor dem Schnipp wird der csvContent (StringBuilder) zusammengebaut und mit den Daten gefüllt - darin befindet sich der komplette Inhalt der CSV-Datei. Diese Lösung funktioniert - sofern kein Overlay angezeigt wird. Ein Overlay würde ja gewöhnlich beim Seitenwechsel automatisch ausgeblendet werden, hier findet aber kein Seitenwechsel statt. Der Client schickt zwar ein Request zum Server, erhält aber als Antwort die CSV-Datei. Wie schaffe ich es das Overlay auszublenden, wenn die Datei vom Server kommt? Mir fällt in diesem Fall nur Ajax als Lösung ein, damit kenne ich mich aber noch nicht aus und bräuchte - sofern Ihr keine andere Idee habt - einen Denkanstoß.
  7. Hallo, tut mir Leid, dass hätte ich erwähnen müssen. Die Anwender möchten ihren Posteingang (ggf Suchergebnis) als Excel-Datei zur Verfügung stehen haben. In wie fern das Sinnvoll ist, lässt sich streiten.. aber so ist es gefordert.
  8. Hallo Zusammen, mein erster Post hier - also seid bitte nicht zu streng. Ich habe die Suchfunktion vorher genutzt und bin auf kein problemlösendes Ergebnis gestoßen. Derzeitiges Szenario: Es geht um eine Java Web Anwendung zur Verwaltung von Nachrichten. Auf der Eingangsmaske oder einer Suchmaske wird eine Liste mit allen Nachrichten angezeigt. Über einen link wird auf dem Server eine Methode zum erstellen eines CSV-Strings aufgerufen und im Header des response als CSV-Datei gesetzt. Die Daten für den CSV-String befinden sich in einer Liste auf dem Server. Eine Erstellung der CSV-Datei alleinig vom Client durch JavaScript ist nicht möglich. Problem: Gelegentlich kommt es vor, dass sich im Eingang eine große Anzahl von Nachrichten befindet, dem entsprechend dauert die Generierung der Datei länger. (10.000 Narichten ca. 17 Sekunden) Wunsch Szenario: Beim Klick auf den Link wird eine Anfrage per Ajax an den Server gestellt. Zeitgleich wird ein Overlay mit einer Animation und "Datei wird erstellt..." angezeigt. Sobald der Server fertig ist wird die Datei per Ajax wieder an den Client geschickt, das Overlay ausgeblendet und die Datei zum Download angeboten (Nicht über einen extra Link sondern als "Speichern Unter.."-Dialog). Leider habe ich noch nie mit Ajax gearbeitet und weiß auch nicht, ob meine Vorstellung hier umsetzbar ist. Wir haben in allen Seiten jQuery eingebunden. Ich hoffe ihr könnt mir den richtigen Denkanstoß geben und vielen Dank im voraus. Mfg Kenny

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...