2011-12-03 34 views
9

Cách sử dụng/lợi thế của việc sử dụng @ViewScoped bên dưới @ManagedBean trong JSF 2.0Sử dụng @ViewScoped trong JSF 2.0?

+3

Xem thêm [Benetifs and cạm bẫy của '@ ViewScoped'] (http://balusc.blogspot.com/2010/06/benefits-and-pitfalls-of-viewscoped.html) và [Communication in JSF 2.0] (http://balusc.blogspot.com/2011/09/communication-in-jsf-20.html). – BalusC

Trả lời

38

@ManagedBean chỉ tuyên bố rằng một bean nhất định được JSF quản lý (làm cho ngôn ngữ có sẵn cho các ngôn ngữ khác).

@ViewScoped cho phép bạn khai báo phạm vi cụ thể mà bean sẽ sinh sống. Mặc định (khi bạn không chỉ định phạm vi) là @RequestScoped, nghĩa là hạt của bạn sẽ tồn tại qua một yêu cầu và sau đó sẽ bị hủy. Các phạm vi khác là @SessionScoped@ApplicationScoped. Tiện ích của bên thứ ba đã giới thiệu phạm vi khác.

@ViewScoped sẽ tiếp tục sống miễn là bạn đăng lại một trang cho chính nó. Một 'xem' là một từ khác cho 'trang' trong Java EE, nhưng phạm vi trang đã có nghĩa là một cái gì đó khác trong Java EE. Phạm vi khung nhìn rất thuận tiện, vì nó cho phép mẫu khởi tạo dữ liệu khi bạn truy cập trang đầu tiên (thông qua yêu cầu không phải khuôn mặt, thường là yêu cầu GET) và sau đó giữ dữ liệu đó khi bạn làm việc trên trang, đăng lại , Yêu cầu AJAX, v.v.

Phạm vi là một phao cứu sinh khi làm việc với các bảng trong JSF nơi bạn tương tác với các thành phần trong bảng. Cụ thể, trong JSF có một quy tắc rằng dữ liệu được sử dụng để hiển thị bảng phải là dữ liệu CHÍNH XÁC được sử dụng sau khi đăng lại khi xử lý các thành phần mà bạn tương tác. Với phạm vi xem này là tầm thường, nhưng không có nó thì khá phức tạp.

Các vấn đề liên quan