ADF tips: Cambiar de skin en tiempo de ejecución dependiendo de la URL
07/03/2016 -
Hace unos meses, Andrejus publicó cómo cambiar entre Skyros y AltaUI en ADF 12c. Esta es una forma perfecta para empezar una migración de 11g a 12c y AltaUI. En este post voy a mostraros otra forma de cambiar de skin en tiempo de ejecución dependiendo de la página en la que estemos.
Primero tenemos que crear un bean ‘SkinSelector’ y una propiedad dentro del bean ‘currentSkin’. También tenemos que añadir su método get y set.
Una vez tenemos creado el bean, y lo hemos registrado en el adfc-config, vamos a asignar dicha propiedad al skin-family del fichero trinidad-config.xml para que podamos setear dicha propiedad dinámicamente.
El siguiente paso es crear un Filter. Dentro de la clase java, en el método doFilter vamos a evaluar la URL en la que nos encontramos y vamos a asignar la propiedad ‘currentSkin’ del bean ‘SkinSelector’ dependiendo del valor. También tenemos que instanciar el bean y añadirlo a sessionScope ya que la primera vez que ejecutemos será null.
Una vez que tenemos el filtro creado, tenemos que registrarlo en el fichero web.xml.
Ya hemos terminado de preparar todo lo necesario y, teniendo múltiples páginas, podemos ver que si navegamos a la página ‘alta’ se mostrará la página con el skin Alta, y si no, el skin que veremos será Skyros.