在JSF 2.0中使用@ViewScoped?

如何在JSF 2.0中使用@ViewScoped在@ManagedBean下面的优势

@ManagedBean只声明某个bean由JSF管理(使其可用于表达式语言等)。

@ViewScoped允许您声明bean将存在的特定范围。默认情况下(当您未指定任何范围时)是@RequestScoped ,这意味着您的bean将通过单个请求生存,然后将被销毁。 其他范围是@SessionScoped@ApplicationScoped 。 第三方扩展引入了其他范围。

只要您将页面回发给自己, @ViewScoped就会继续@ViewScoped 。 “视图”是Java EE中“页面”的另一个词,但页面范围在Java EE中已经具有其他含义。 视图范围非常方便,因为它允许在您第一次访问页面时(通过非面部请求,通常是GET请求)初始化数据的模式,然后在您处理页面时保留数据,执行回发,AJAX请求等

当您使用JSF中的表与表中的组件进行交互时,范围是一个救星。 也就是说,在JSF中,有一条规则,即用于呈现表的数据必须是回发后处理与您交互的组件时使用的EXACT SAME数据。 在视图范围内这是微不足道的,但没有它它是相当棘手的。