Diferencia entre el scope de Ver y Solicitar en beans administrados

¿Qué significa el scope de la vista? ¿Alguien puede explicar al respecto, para que pueda entender cómo difiere del scope de la solicitud?

Un bean @ViewScoped vive exactamente lo mismo que una vista JSF. Por lo general, comienza con una nueva solicitud GET nueva, o con una acción de navegación, y luego vivirá siempre que el usuario final envíe cualquier formulario POST en la vista a un método de acción que devuelva null o void (y así vuelva a la misma vista ) Una vez que actualiza la página o devuelve un resultado de navegación de cadena no null (¡incluso una cadena vacía!), El scope de la vista finalizará.

Un bean @RequestScoped vive exactamente el mismo tiempo que una solicitud HTTP. Por lo tanto, será guardado al final de cada solicitud y reproducido en cada nueva solicitud, perdiendo así todas las propiedades modificadas.

Por lo tanto, un bean @ViewScoped es particularmente más útil en vistas ricas habilitadas para Ajax que necesitan recordar el estado de vista (modificado) en las solicitudes de Ajax. Un @RequestScoped se recrearía en cada solicitud de Ajax y, por lo tanto, no recordaría todo el estado de la vista modificada. Tenga en cuenta que un bean @ViewScoped no comparte datos entre diferentes tabs / ventanas del navegador en la misma sesión, como un bean @SessionScoped . Cada vista tiene su propio bean @ViewScoped único.

Ver también:

  • ¿Cómo elegir el scope del frijol correcto?
  • Los beneficios y las trampas de @ViewScoped