Xpert.ivy Code Rezpet: Managed Beans in der Logic verwenden

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.
Über den Author: Heinrich Spreiter ist der Gründer von xpertivyhacker.ch. Kontaktieren Sie ihn auf Xing und Twitter

Melden Sie sich für den Xpert.ivy hacker Newsletter an und Sie erhalten immer die neusten Tutorials und Tricks zu Xpert.ivy sobald sie publiziert werden.

Ihre Email Adresse wird nur für diesen Newsletter verwendet und nicht an dritte weitergegeben.

Kommentare:

  1. Hello Heinrich,

    Thank 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

    AntwortenLöschen
  2. Hello Adriano

    Good to know. Thanks for that!

    Henry

    AntwortenLöschen

Hinweis: Nur ein Mitglied dieses Blogs kann Kommentare posten.