tutorial librerias etiquetas español ejemplo componentes caracteristicas jsf-2

librerias - ¿Qué es el parámetro STATE_SAVING_METHOD en JSF 2.0?



primefaces (2)

No puedo entender cuál es la función de esta línea en web.xml

<context-param> <param-name>javax.faces.STATE_SAVING_METHOD</param-name> <param-value>server</param-value> </context-param>

He leído que el valor predeterminado de NetBeans es cliente . Acabo de enfrentar un problema que tengo muchos beans en mi aplicación, y el <param-value> se configuró para el cliente, así que estaba recibiendo

java.io.NotSerializableException

error aunque mis beans eran serializables (es decir, implementaron la interfaz serializable). Mis frijoles estaban en @ViewScope . Pero cuando lo cambié al servidor, las cosas van a funcionar. ¿Por qué? ¿Cuál es la diferencia cuando uso cliente y servidor? ¿Alguien puede explicarme con la ayuda de un ejemplo?

Gracias


java.io.NotSerializableException

Este tipo de excepción generalmente tiene un mensaje en la causa raíz que muestra el nombre de clase completamente calificado de la clase que no implementa Serializable . Debe prestar mucha atención a este mensaje para saber de qué clase está hablando y luego dejar que se implemente Serializable consecuencia.

A menudo, no solo basta con que las clases de beans administrados sean serializables. También debe asegurarse de que cada una de sus propiedades también sea serializable. La mayoría de los tipos estándar como String , Long , etc. implementan todos ya Serializable . Pero los tipos complejos (personalizados), como beans anidados, entidades o EJB, también deben ser serializables. Si algo no es realmente implementable como Serializable , como InputStream , entonces debe rediseñar el modelo o hacerlo transient (y tener en cuenta que será null después de la deserialización).

¿Cuál es la diferencia cuando uso cliente y servidor?

Primero, algunos datos de fondo: ¿Por qué JSF guarda el estado de los componentes de IU en el servidor?

La principal diferencia técnica es que la configuración del client almacena el estado completo de la vista como el valor del campo de entrada oculto javax.faces.ViewState en la salida HTML generada y que la configuración del server almacena en la sesión junto con una ID única que está en a su vez, se hace referencia al valor del campo de entrada oculto javax.faces.ViewState .

Por lo tanto, la configuración para el client aumenta el uso del ancho de banda de la red, pero disminuye el uso de la memoria del servidor y la configuración para el server es al revés. Sin embargo, la configuración para el client tiene una ventaja funcional adicional: previene ViewExpiredException s cuando la sesión ha caducado o cuando el cliente abre demasiadas vistas.


javax.faces.STATE_SAVING_METHOD parámetro javax.faces.STATE_SAVING_METHOD se usa para especificar dónde se debe guardar el estado.

Si desea guardar el estado en el servidor (que es el valor predeterminado en la implementación de referencia de JavaServer Faces), especifique el param-value valor param-value como server .

De lo contrario, para guardar el estado en el lado del cliente, podemos especificar el client en el param-value .

Si el estado se guarda en el cliente, el estado de la vista completa se representa en un campo oculto en la página.