2011-12-03 14 views
9

Jak używać/zalety korzystania @ViewScoped poniżej @ManagedBean w JSF 2.0Korzystanie z @ViewScoped w JSF 2.0?

+3

Zobacz także [Benetify i pułapki z '@ ViewScoped'] (http://balusc.blogspot.com/2010/06/benefits-and-pitfalls-of-viewscoped.html) oraz [Komunikacja w JSF 2.0] (http://balusc.blogspot.com/2011/09/communication-in-jsf-20.html). – BalusC

Odpowiedz

38

@ManagedBean tylko deklaruje, że pewna fasola jest zarządzane przez JSF (udostępnia je językiem ekspresji między innymi).

@ViewScoped pozwala zadeklarować konkretny zakres fasola będzie żył w. Domyślnie (jeśli nie podasz żadnego zakresu) jest @RequestScoped, czyli swoją fasolkę będzie żył za pomocą jednego wniosku, a następnie zostaną zniszczone. Inne zakresy to @SessionScoped i @ApplicationScoped. Rozszerzenia osób trzecich wprowadziły inne zakresy.

@ViewScoped będzie działać tak długo, jak prześlesz stronę do siebie. "Widok" to inne słowo dla "strony" w Java EE, ale zakres strony już oznaczał coś innego w Java EE. Zasięg widoku jest bardzo wygodny, ponieważ pozwala na wzorzec inicjowania danych przy pierwszym dostępie do strony (za pomocą żądania innego niż twarze, które zwykle jest żądaniem GET), a następnie zachować te dane podczas pracy na stronie, wykonując postbacks , Żądania AJAX, itp.

Zakres jest ratunkiem podczas pracy z tabelami w JSF, w którym współdziałasz z komponentami w tabeli. Mianowicie, w JSF istnieje zasada, że ​​dane używane do renderowania tabeli muszą być danymi EXACT SAME, które są używane po odświeżeniu strony podczas przetwarzania komponentów, z którymi współpracowałeś. Z zasięgiem widzenia jest to banalne, ale bez niego jest dość trudne.

Powiązane problemy