2.6 Deklarace komponent v Java Beanech


Po vytvoření beanů používaných aplikací je nutné je deklarovat v konfiguračním souboruaplikace (Java Studio Creator používá soubor managed-beans.xml). V dřívějších verzích JSF (stejně tak u JSP stránek) se beany inicializovaly pomocí tagu <jsp:useBean…> v dané JSP stránce, mohly však vznikat problémy při přístupu k beanu, který ještě nebyl inicializován – požadavek na jeho inicializaci mohla vznášet stránka, která ještě nebyla navštívena. Proto jsou beany definovány zvlášť v konfiguračním souboru. Díky tomu jsou beany dostupné globálně pro celou aplikaci, dají se spravovat centralizovaně a nemusejí se dohledávat v každé JSP stránce zvlášť, lze definovat hodnoty vlastností beans přímo v definici. Při spouštění aplikace jsou vytvořeny instance všech daných beanů dle jejich konfigurace.
<managed-bean>
<managed-bean-name>UserBean</managed-bean-name>
<managed-bean-class>semestralka.UserBean</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
Tab. VII: Příklad definice datové komponenty UserBean
Jednotlivé názvy vlastností definuje Java Studio Creator automaticky (mimo něj se definují pomocí elementů <managed-property>), je nutné zadat pouze rozsah platnosti dané instance (managed-bean-scope). Ta může nabývat následujících hodnot:
  • none – při každém použití beanu bude vytvořena nová instance
  • request – pro každé znovunačtení beanu bude vytvořena nová instance
  • session – instance je vytvořena pro každou otevřenou session (prakticky jedno okno prohlížeče)
  • application – instance je vytvořena pouze jedna pro celou aplikaci
Žádná instance není vytvářena samovolně, ale až v okamžiku požadavku na její vytvoření, tedy v okamžiku volání metody getBean(). V případě beanu UserBean je tedy po zavolání metody getUserBean() vytvořena instance třídy UserBean pro celou existující session (teoreticky pro každého uživatele jedna).
protected UserBean getUserBean() {
return (UserBean)getBean(„UserBean“);
}
Tab. VIII: Metoda vytvářející UserBean
Napojení komponenty na přidružený bean je realizováno pomocí zavolání get metody v beanu, kdy se neuvádí prefix get.

<ui:textField binding=“#{Page1.textField1}“ id=“textField1″
text=“#{UserBean.jmeno}“/>

Tab. IX: Nastavení obsahu komponenty TextField1 na proměnnou přidruženou v beanu

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *