Problem
Sie wollen auf ein Managed Bean in der Logic zugreifen.
Lösung
Über die Application kann man EL-Expressions evaluieren und somit auch auf Managed Beans zugreifen.
Ich werde Ihnen zeigen, wie Sie das Application Objekt holen und eine EL-Expression evaluieren, um auf ein Managed Bean zugreifen zu können.
SVN
Sie können das fertige Projekt per SVN von http://xpert-ivy-hacker-source-code.googlecode.com/svn/trunk/ManagedBeans in den Xpert.ivy Designer importieren.
Code
Als erstes definieren wir ein einfaches Managed Bean.
Code-Snippet 1: Managed Bean
Das description Attribut des Bean wird nun in einem p:inputText verwendet.
Code-Snippet 2: Bean Attribut verwenden
Wie hier zu sehen ist, wird über den name des Beans darauf zugegriffen.
Wenn der Button gedrückt wird, wird in der Logic auf das Bean zugegriffen und das description Attribute geändert.
Code-Snippet 3: Zugriff auf das Managed Bean
Der Schlüssel hier ist das evaluieren der EL-Expression auf Zeile 8. Wenn #{sampleBean} evaluiert wird, hat dies den selben Effekt, wie wenn diese EL-Expression innerhalb der View ausgeführt wird.
Das description Attribut des Bean wird nun in einem p:inputText verwendet.
Code-Snippet 2: Bean Attribut verwenden
Wie hier zu sehen ist, wird über den name des Beans darauf zugegriffen.
Wenn der Button gedrückt wird, wird in der Logic auf das Bean zugegriffen und das description Attribute geändert.
Code-Snippet 3: Zugriff auf das Managed Bean
Der Schlüssel hier ist das evaluieren der EL-Expression auf Zeile 8. Wenn #{sampleBean} evaluiert wird, hat dies den selben Effekt, wie wenn diese EL-Expression innerhalb der View ausgeführt wird.
Über den Author: Heinrich Spreiter ist der Gründer von xpertivyhacker.ch. Kontaktieren Sie ihn auf Xing und Twitter
Hello Heinrich,
AntwortenLöschenThank you for this solution. I was looking for a solution to access managed beans from Ivy script.
You can also pass the managed bean as parameter to a method, i.e. actionListener="#{logic.send(sampleBean)}", as the parameter's type list exposes managed bean types.
Adriano Labate
Hello Adriano
AntwortenLöschenGood to know. Thanks for that!
Henry