Schmarrer Geschrieben 16. Januar 2011 Geschrieben 16. Januar 2011 (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 16. Januar 2011 von Schmarrer Zitieren
etreu Geschrieben 17. Januar 2011 Geschrieben 17. Januar 2011 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. Zitieren
Schmarrer Geschrieben 18. Januar 2011 Autor Geschrieben 18. Januar 2011 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. Zitieren
etreu Geschrieben 18. Januar 2011 Geschrieben 18. Januar 2011 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). Zitieren
Schmarrer Geschrieben 18. Januar 2011 Autor Geschrieben 18. Januar 2011 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 Zitieren
Schmarrer Geschrieben 18. Januar 2011 Autor Geschrieben 18. Januar 2011 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 Zitieren
Empfohlene Beiträge
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.