2011-12-03 16 views
9

Cómo utilizar/ventajas de utilizar @ViewScoped por debajo de la @ManagedBean en JSF 2.0Uso de @ViewScoped en JSF 2.0?

+3

Ver también [Benetifs y trampas de '@ ViewScoped'] (http://balusc.blogspot.com/2010/06/benefits-and-pitfalls-of-viewscoped.html) y [Comunicación en JSF 2.0] (http://balusc.blogspot.com/2011/09/communication-in-jsf-20.html). – BalusC

Respuesta

38

@ManagedBean simplemente declara que un determinado frijol es administrado por JSF (pone a disposición de lenguaje de expresión, entre otros).

@ViewScoped le permite declarar un ámbito específico en el que vivirá el bean. El valor predeterminado (cuando no especifica ningún ámbito) es @RequestScoped, lo que significa que su bean vivirá una única solicitud y se destruirá. Otros ámbitos son @SessionScoped y @ApplicationScoped. Las extensiones de terceros han introducido otros ámbitos.

@ViewScoped seguirá viviendo mientras publiques una página para sí mismo. Una 'vista' es otra palabra para 'página' en Java EE, pero el alcance de la página ya significaba algo más en Java EE. El alcance de la vista es muy conveniente, ya que permite el patrón de inicialización de datos cuando accede por primera vez a una página (a través de una solicitud no caras, que normalmente es una solicitud GET) y luego conserva esos datos cuando trabaja en la página, haciendo devoluciones , Solicitudes AJAX, etc.

El alcance es un salvavidas cuando se trabaja con tablas en JSF donde se interactúa con los componentes de la tabla. A saber, en JSF existe una regla según la cual los datos que se utilizaron para representar la tabla deben ser los MISMOS EXACTOS que se utilizan después de la devolución de datos al procesar los componentes con los que se interactuó. Con el alcance de la vista esto es trivial, pero sin eso es bastante complicado.

Cuestiones relacionadas