sábado, 16 de agosto de 2014

Pasar valores de un bean a un binding

Descripción: En este artículo veremos cómo pasar un valor de un bean al binding en oracle ADF 10g. 

Es bastante común encontrarse que no todo puede conseguirse con un formulario y un commit, sino que es necesario hacer operaciones en un bean antes de guardarlo.

Para pasar ese resultado de nuestras operaciones al binding, para que pueda luego ser guardado con el commit del Application Module haremos lo siguiente:

FacesContext fc = FacesContext.getCurrentInstance();
ValueBinding expr;
expr = fc.getApplication().createValueBinding("#{bindings.NombreCampo.inputValue}");
if (expr != null)
        expr.setValue(fc, valor);

La condición expr != null, viene de que podemos encontrarnos con que el valor no esté definido, o que en el momento de consultarse el bean, el binding de la página actual todavía no existe.
Esto ocurre cuando estamo llamando desde un método del bean, en un momento en el cual todavía no se ha terminado de construir la página.

Errores comunes

También debemos tener en cuenta que el nombreCampo donde queremos poner el valor en el binding, debe existir en la página de definición de la página que estamos trabajando en ese momento. Normalmente, será un elemento de tipo atributeValue, aunque puede haber otros tipos.

Puede darse el caso de que estemos reutilizando un método en un bean, que ha sido escrito pensando en una página, y ahora la estemos utilizando en otra que no contiene el mismo campo en el binding. Esto puede hacer que expr = null.

Artículos relacionados:
-
-

No hay comentarios:

Publicar un comentario