2011-12-03 15 views
9

nasıl kullanılır/JSF 2.0JSView 2.0 @ ViewScoped kullanımı?

+3

Ayrıca bkz. [@ ViewScoped'ün benzetimleri ve hataları] (http://balusc.blogspot.com/2010/06/benefits-and-pitfalls-of-viewscoped.html) ve [JSF 2.0’de İletişim] (http://balusc.blogspot.com/2011/09/communication-in-jsf-20.html). – BalusC

cevap

38

@ManagedBean yılında @ManagedBean aşağıda @ViewScoped kullanarak avantajları sadece JSF tarafından yönetilen belli fasulye (diğerleri arasında ifadesi dilin kullanımına sunar) olduğunu beyan eder.

@ViewScoped, fasulyenin yaşayacağı belirli bir alanı bildirmenize izin verir. Varsayılan (herhangi bir kapsam belirtmediğinizde) @RequestScoped şeklindedir, bu da fasulyenizin tek bir istekle yaşayacağı ve daha sonra yok edileceği anlamına gelir. Diğer kapsamlar @SessionScoped ve @ApplicationScoped'dur. Üçüncü taraf uzantıları diğer kapsamları ortaya çıkarmıştır. Bir sayfayı bir sayfaya geri yüklediğiniz sürece yaşamaya devam edeceksiniz.

Java EE'de 'view' kelimesi 'page' için başka bir kelimedir, ancak sayfa kapsamı zaten Java EE'de başka bir şey ifade etmiştir. Görünüm kapsamı çok uygundur, çünkü bir sayfaya ilk kez eriştiğinizde (genellikle bir GET isteği olan yüzleri olmayan bir istekle) veriyi başlatma düzenine izin verir ve sonra sayfada çalışırken bu verileri saklar, geri göndermeler yapar AJAX istekleri, vb.

Tablodaki bileşenlerle etkileşimde bulunduğunuz JSF'de tablolarla çalışırken, kapsam bir cankurtarandır. Yani, JSF'de, tabloyu oluşturmak için kullanılan verilerin, etkileşim kurduğunuz bileşenleri işlerken geri gönderme işleminden sonra kullanılan EXACT SAME verileri olması gerektiği konusunda bir kural vardır. Görüş alanı ile bu önemsiz, ama onsuz oldukça zor.