Problema
Tiene un componente en el que ha declarado selectores.
- No hay ningún contexto de componente en la solicitud.
- El componente se renderiza, pero no la plantilla.
Solución
JSP A se define como un script de componente (solo se puede definir uno) en la definición del componente. A continuación, se ha añadido un global para JSP B a la definición del componente. Cuando el componente X se incluye en la plantilla (ya sea en el sistema de párrafos o con etiqueta), el proveedor de componentes solo conoce el JSP A como el script del componente. Es el JSP que se incluye en la salida de la plantilla JSP.
El patrón global de la definición del componente (para jsp B) se añade a la definición de la plantilla. Se comporta de la misma manera que los globales añadidos directamente a la definición de la plantilla. Este comportamiento es esperado; es útil si su componente tiene que generar una solicitud a otro recurso como con imágenes o solicitudes de Ajax. En tales casos, es necesario saber cuál es el patrón global cuando se define el componente.
Para lograr el comportamiento esperado, es necesario que su componente obtenga el selector de la solicitud, y lo base en ese contenido renderizado de una forma diferente. No añada un global a la definición del componente. Si desea dividirlo en diferentes JSP, puede utilizar la etiqueta e insertar un JSP diferente basado en el selector.
La interfaz com.day.cq.delivery. DeliveryHttpServletRequest define los métodos públicos String getSelectorString() y String getSelectors() para trabajar con selectores. El objeto de solicitud JSP puede lanzarse directamente a esta interfaz en CQ.
A continuación se adjunta un ejemplo sencillo. Para simplificar, este ejemplo no utiliza un sistema de párrafos.
Descargar