Zum Inhalt springen

JSF: Weiteres Formular mit Formdaten vorbefüllen


Empfohlene Beiträge

Geschrieben (bearbeitet)

Hallo zusammen,

ich beschäftige mich seit einiger Zeit immer wieder mal mit den JavaServer Faces. Bis jetzt klappt das Ganze auch ganz gut, aber irgendwie steh ich jetzt ein bisschen auf dem Schlauch.

Ich habe eine Webanwendung, in welcher mehrere Formulare von den Usern ausgefüllt werden können. Jedes Formular ist als separate Seite vorhanden. Die Formulare beinhalten stets fixe Personendaten (über alle Formulare hinweg) sowie je nach Formulartyp weitere Felder.

Jetzt kann es sein, dass ein User mehrere Formulare gleichzeitig ausfüllen möchte. In diesem Fall soll er über Checkboxen die anderen Formulare auswählen können. Beim Abschicken des "Masterformulars" sollen die ausgewählten Formulare mit den vorbefüllten Personendaten in weiteren Tabs im Browser aufgerufen werden. Somit muss der User die stets gleichen Daten nur einmal eintippen. Und hier fangen meine Probleme an.

Ich weiß nicht so richtig wie ich das anstellen soll. Das Ganze soll erst statt finden, wenn das Masterformular alle Bedingungen erfüllt und korrekt ausgefüllt wurde. Ich weiß nicht so richtig wie ich die weiteren Formulare dann aufrufen soll, geschweige wie denn dann die Daten (vllt mit Actionparameter???) übergegeben und in die neue Bean geschrieben werden sollen. Für jedes Formular existiert eine separate Bean. Diese Beans erweitern eine Klasse Personendaten.

Muss das aus der Bean erfolgen (wie ruf ich da eine neue Seite auf? geht das überhaupt?)??? Fragen über Fragen

Ich hoffe das Ganze wurde wenigstens ein bisschen verständlich. Ich reiche gerne noch weitere Infos - wenn gewünscht nach.

Ich verwende JSF 2.0 zusammen mit Richfaces.

Wäre schön wenn mir jemand helfen könnte.

Danke und Gruß

Bearbeitet von Schmarrer
Geschrieben

Du kannst mit einem Klick auf einen Button einfach alle Formulare via Ajax absenden. In den Formularen selbst kannst du über das support-Tag auf das onsubmit-Ereignis mit onbeforedomupdate eine neue Seite via Javascript öffnen.

Eine andere Lösung fällt mir ad-hoc nicht ein. Im Normfall hat man ein Link/Formular und nur eine Zielseite.

Geschrieben

Hi,

ich hatte im Prinzip das gleiche mit JSP schon einmal realisiert. Aber das Ganze sah so wüst aus, dass ich auf JSF umsteigen wollte.

Ich hatte das so gelöst, dass ich praktisch die Post Parameter innerhalb der JSP Seite ausgelesen bzw. auf vorhandensein geprüft habe.

Wenn ich jetzt per Button das Formular absende und ein anderes Aufrufe, dann ist mir noch nicht ganz klar wie ich die Daten in der neuen Bean / im neuen Formular vorinitialisieren kann. Es handelt sich ja schließlich um eine neue Bean die mit der alten erstmal gar nix am Hut hat.

Geschrieben

Dir ist aber schon klar, wie JSF arbeitet, oder? Du must dann eine Verbindung zwischen den Beans herstellen, oder einen gemeinsamen Speicher verwenden (btw. ich liebe dependency injection).

Geschrieben

Ja ich weiß wie JSF arbeitet - ich bin zwar kein Experte - aber die Grundzüge habe ich schon verstanden. Auch wie ich eine Verbindung zur Bean herstelle ist mir bekannt. Die einzelnen Formulare an sich sind ja bereits voll funktionsfähig. Mir gehts jetzt wirklich nur um eine kleine Hilfestellung für die User.

Vielleicht ein kleines (fiktives) Beispiel:

Javaklassen:

- PkwBean

- MotorradBean

xhtml:

- pkw.xhtml

- motorrad.xhtml

So, der User fühlt jetzt das Pkw Formular aus. Die Daten liegen in meiner PkwBean. Jetzt soll es da einen Button geben, der das Motorradformular öffnet und einige InputFelder vorbelegen soll.

Mir fällt da echt nichts ein, wie ich die Werte aus der PkwBean in die entsprechenden Felder der motorrad.xhtml bzw. in die richtigen Variablen innerhalb der MotorradBean bringe.

Ahhh stopp... Jetzt kommts mir gerade beim Schreiben... Du erwähntest einen gemeinsamen Speicher.... Könnte ich eine Klasse 'Stammdaten' als Bean registrieren und die enstprechenden Daten dort speichern - alle weiteren in der PkwBean? Ich müsste doch dann auch von einer anderen Seite auf "den gemeinsamen Speicher" zugreifen können oder? Die Frage ist ob beide Formulare auf die gleichen Instanzen zugreifen!?

Ich kanns ja mal ausprobieren.

Vielleicht um das mal zu erwähnen. Ich komm eigentlich aus dem Datenbankbereich und versuch mich ein bisschen an (Web)Programmierung. Mit Java programmiere ich zwar schon etwas länger, aber als Programmierer bezeichne ich mich selbst nicht. Deshalb bitte ich um ein wenig Rücksicht :)

Geschrieben

Ich werde ein Hirsch....

Mensch so einfach kann es gehen. Vergess das Geschwafel vorhin. :upps

Hab es so gemacht, dass ich die "gemeinsamen Daten" in einer extra Klasse habe. Von da klappt es wunderbar.

Danke für den Denkanstoss

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

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...