miércoles, 4 de noviembre de 2015

Escapar texto HTML con la opción "target" de a href

El planteamiento es el siguiente: se pretende que, en un texto HTLM que contiene un elemento a href incrustado en una página ADF, se produzca la redirección a la nueva página pero en una nueva ventana del navegador.

ADF tiene un elemento llamado "outputFormatted" que permite escapar texto HTML en una caja de texto. Hasta aquí todo correcto. El problema viene que ese texto HTML contiene un elemento a href con la etiqueta target ="_blank", por lo que se quiere que dicha redirección vaya a una nueva página en blanco. Si traducimos esto a ADF quedaría un bundle properties:

OT_FORMATTED_LINK=<html>Esto es un texto formateado con un <a href="http://www.google.es" target="_blank" title="El enlace">enlace</a> entre medio del cuerpo</html>

Si esto lo introducimos en el outputFormatted quedaría:

 <af:outputFormatted value="#{bundle.OT_FORMATTED_LINK}" id="of1"/>

donde bundle es el nombre del bundle dado en las properties del proyecto, y en el faces-config.

Si hacemos esto, la opción target del elemento "a" no la ejecuta.

Solución: sustituir el elemento outputFormatted por un outputText, con la propiedad escape="false".

<af:outputText value="#{bundle.OT_FORMATTED_LINK}" id="ot1"
                         escape="false"/>