2009-05-05 4 views
1

Ich baue eine Webanwendung mit JSF und ICEFaces. Jetzt habe ich ein Java Applet in eine der JSF Seiten integriert.So übergeben Sie Daten von JSF an ein Java-Applet

Die Frage ist, wie kann ich Informationen, die in der Backing-Bean gespeichert sind, an das Applet übergeben? Ich glaube nicht, dass ich eine bidirektionale Kommunikation brauchte. Ich bin Sammlungsdaten mit ICEFaces Eingangskomponenten. Zum Beispiel bewirkt das Drücken einer Taste, dass das Applet mit den neu gesammelten Daten neu geladen wird.

Dank

+0

Wie haben Sie es geschafft, ein Applet in eine JSF-formatierte Seite zu integrieren ?. Ich habe danach gesucht, aber ich konnte den richtigen Weg nicht finden. –

Antwort

1

Nun am Ende denke ich Ihr Applet eine Art Ansicht Ihres Modells darstellen sollte. In einem MVC-Kontext wäre Ihre JSF also Ihre Sicht/Kontrolle, und Sie hätten ein Backend-Modell. Ihr Applet ist eine andere Ansicht dieses Modells. Ihr Applet sollte also ein Beobachter oder ein Listener in Ihrem Modell sein. Wenn das JSF Änderungen am Modell vornimmt, sollten Sie ein Ereignis auslösen/Beobachter benachrichtigen, die das Modell geändert haben.

+0

Danke für die Antwort, aber das löst mein Problem nicht. In Ihrem Szenario muss ich Informationen von JSF/Backing Bean zum Applet bekommen. Das ist genau das, was ich nicht kann ... – Toby

+0

Sie könnten es über eine RMI-Verbindung tun. Aber wie Sie selbst vorschlagen, ist es auch möglich, dies durch Drücken einer Schaltfläche zu tun, da die öffentlichen Methoden von Klassen, die von JApplet erben, über Javascript verfügbar sind. Sie müssen nur das DOM-Element suchen, das Ihr Applet enthält, und dann eine Methode aufrufen, um es zu aktualisieren. Z.B. document.MyApplet.refresh() –

1

Etwas wie das folgende in Ihrem Applet-Tag?

<param name="welcomeMessage" value="<h:outputText value="#welcomeMessage"/>"> 

(Entschuldigen Sie alle JSF Ungenauigkeiten)

und dann in das Applet getParameter als normal verwenden.