miércoles, 13 de agosto de 2014

Recoger el valor de un processScope en un bean

Descripción: En este artículo vamos a ver cómo un valor que se encuentra en un processScope lo recoge un bean. 
Nota: Este artículo está orientado a ADF 10g.

Para recoger un valor que está en processScope, debemos tener en cuenta de que se trata de un objeto que es propio del ADF, es decir, no es algo que hemos aportado a través de una variable o de una función en nuestro código.

Utilizaremos una construcción como la siguiente:

AdfFacesContext.getCurrentInstance().getProcessScope().get("valorGuardado")

AdfFacesContext.getCurrentInstance().getProcessScope() nos lleva a tener el objeto processScope para que podamos manejarlo.

Como podemos observar por los nombres, son variables que contienen el contexto de la sesión.

En cuanto tenemos este objeto, podemos acceder a un valor concreto, dentro de ese "array asociativo". Nos basta con hacer un get con el nombre del valor que queremos recuperar para obtenerlo.

Dependiendo del tipo de variable donde vayamos a recoger el valor es posible que haya que realizar alguna conversión (operador cast).

Hay otras funciones que pueden ser de interés:
AdfFacesContext.getCurrentInstance().getProcessScope().size()
Obtiene el número de valores que hay en ese momento en el processScope.

AdfFacesContext.getCurrentInstance().getProcessScope().clear()
Borra todos los valores guardados

Consejo:
Cuando recogemos un valor guardado en un processScope, puede que tenga un valor nulo.
Recomendaría una comprobación de que dicho valor se encuentra, antes de operar con él. Es más, cada vez que se vaya a recoger un valor de un processScope habría incluir dicha comprobación.
La razón es que hay que estar muy seguro de que eso no pueda ocurrir durante la ejecución de la aplicación.



Artículos relacionados:
- Pasar un valor desde la página de diseño al processScope con setActionListener

No hay comentarios:

Publicar un comentario