ADF tips: Mostrar los valores de un Map en una af:table
04/11/2015 -
Cuando queremos rellenar una tabla pragmáticamente es una práctica habitual utilizar una collection basada en un POJO (por ejemplo List<MyClass>), pero en este post de los foros de JDeveloper & ADF requerían rellenar una tabla utilizando un Map. Es un proceso bastante sencillo y voy a enseñaros cómo conseguirlo.
Para empezar vamos a crear en nuestro bean el Map que vamos a utilizar para rellenar la tabla.
Si intentamos rellenar la tabla sólo con lo que tenemos, vemos que necesitamos saber las keys del Map para poder obtener los valores.
Como podéis ver, muestra el valor del Map para la ‘Key 1’, pero de la forma que es muestro en la imagen anterior, no sería posible que fuese dinámico.
Para solucionar esto, necesitaremos añadir a nuestro bean un array con las claves del Map.
Una vez que ya tenemos creado en el bean lo que necesitamos, vamos a proceder a crear la tabla.
Sobre la tabla que os enseñé anteriormente hay que realizar algunos cambios. Para empezar, en vez de utilizar el objeto mapTable del bean tenemos que utilizar el array de keys que hemos creado como value de la tabla.
Y para poder acceder a los valores del Map tenemos que poner las columnas dentro de un af:iterator que utilice como value el objeto mapTable del bean.
De esta forma para acceder a las keys utilizaremos #{row} y para acceder a los valores utilizaremos #{var[row]}.
Una vez hemos introducido estos cambios a nuestra tabla, si ejecutamos la aplicación podemos ver que nos muestra dinámicamente, sin que necesitemos saber las keys del Map, todos los valores del mismo.