Etiqueta getContent para recuperar contenido gestionado externamente
Se puede recuperar contenido de texto, como fragmentos de HTML para su uso en zonas de e-Marketing, de un sistema de gestión de contenido externo. Cuando se recupera contenido de texto de un sistema externo para mostrarlo en una página de tienda, el contenido se recupera mientras la página de tienda se representa. La etiqueta JSTL wcst:getContent
se utiliza para aceptar y resolver URL de contenido para que sean válidos para la página de tienda en la que se va a mostrar el contenido. La etiqueta se utiliza entonces para recuperar el contenido del URL resuelto.
La etiqueta JSTL wcst:getContent
se utiliza para incluir los resultados de un URL especificado para la ubicación de contenido en un sistema de gestión de contenido externo. El contenido que se recupera debe ser contenido de texto que se pueda incluir dentro de una página de tienda. Si el contenido que se va a recuperar contiene referencias de URL que son relativas a la ubicación del contenido, la etiqueta wcst:getContent
actualiza las referencias de URL relativas para que sean URL totalmente calificados. Con el URL resuelto, se accede al URL y el contenido de texto que se encuentra en el URL totalmente calificado se incluye en la página de tienda. Cuando el contenido se recupera de la ubicación del URL resuelto, la etiqueta se utiliza para grabar el contenido en una variable especificada, o en el JSPWriter
actual si no se especifica ninguna variable.
wcst:getContent
.url
- el URL del contenido que se va a recuperar. El URL no resuelto se puede especificar con este atributo o en el cuerpo de la etiquetawcst:getContent
.var
- la variable a la que se asigna el contenido. Si no se especifica este atributo de variable, el contenido se graba en elJSPWriter
.scope
- el ámbito de la variable que se especifica con el atributovar
. Los valores para el atributoscope
pueden serpage
,request
,session
yapplication
. El valor predeterminado espage
.
El contenido que se obtiene con esta etiqueta se recupera utilizando el mandato de tarea com.ibm.commerce.content.commands.GetContentCmd. Este mandato invoca el URL especificado para la etiqueta y recupera el contenido. La implementación predeterminada para el mandato de tarea GetContentCmd se configura en la tabla de base de datos STORECONF. Para obtener más información sobre cómo configurar la implementación predeterminada de este mandato de tarea, consulte com.ibm.commerce.content.commands.GetContentCmdImpl.
Los URL de contenido no resueltos deben llevar el prefijo http://[cmsHost]
. Estos URL no resueltos se resuelven con el mandato de tarea com.ibm.commerce.content.commands.ResolveContentURLCmd
. Cuando se llama a este mandato, el URL se invoca desde WebSphere Application Server. La implementación predeterminada del mandato de tarea sustituye el prefijo http://[cmshost]
por el nombre de host para la clave wc.resolveContentURL.cmsInternalHost
que se encuentra en la tabla de base de datos STORECONF. Si el mandato no detecta el prefijo http://[cmsHost]
, se considera que el URL se ha resuelto. Para obtener más información sobre cómo configurar la implementación predeterminada de este mandato de tarea, consulte com.ibm.commerce.content.commands.ResolveContentURLCmdImpl.
Almacenamiento en memoria caché de la etiqueta getContent
wcst:getContent
se puede almacenar en memoria caché. Para habilitar el almacenamiento en memoria caché de este mandato, añada la siguiente entrada cachespec
en el archivo cachespec.xml
.<cache-entry>
<class>command</class>
<sharing-policy>not-shared</sharing-policy>
<name>com.ibm.commerce.content.commands.GetContentCmdImpl</name>
<cache-id>
<component type="method" id="getCacheId">
<required>true</required>
</component>
<priority>1</priority>
<timeout>3600</timeout>
<inactivity>600</inactivity>
</cache-id>
<dependency-id>getContent</dependency-id>
</cache-entry>
- Determine los URL de contenido que han cambiado. La comparación de los archivos previamente pre-representados con los archivos recién pre-representados puede ayudar a identificar los URL modificados. Ignore el contenido que no tenga un tipo MIME que sea
text
. El contenido que no sea texto no es almacenado en memoria caché por y es cargado directamente por el navegador. El contenido de texto puede almacenarse en memoria caché y ser consumido por zonas de e-Marketing en una página de tienda cuando se representa la zona de e-Marketing. - Determine las filas de la tabla de base de datos que hacen referencia a cualquiera de los URL que han cambiado. Los URL de contenido se registran en la columna ATCHASTPATH de la tabla.
- Utilice el programa de utilidad stagingprop para insertar registros de en la base de datos de producción para invalidar las zonas de e-Marketing que hacen referencia al contenido modificado. De forma alternativa, actualice la columna TIMEUPDATED de la tabla ATCHAST ejecutando el siguiente SQL
Donde http://[cmsHost]/contentPath es el URL de contenido para el contenido modificado.update atchast set timeupdated = current timestamp where atchastpath in ('http://[cmsHost]/contentPath');
Nota: Si debe insertar manualmente los registros de CACHEIVL en la base de datos de producción, utilice el siguiente SQL
Donde collateral_Id es el valor de la columna COLLATERAL_ID de la tabla de base de datos . Para identificar todas las filas de la tabla COLLATERAL que están relacionadas con el contenido que ha cambiado, debe hacer referencia a la tabla . Esta tabla registra la relación entre las entradas de las tablas COLLATERAL y ATCHAST. Para recuperar una lista de los valores de COLLATERAL_ID que hacen referencia a un fragmento modificado de contenido, como http://[cmsHost]/contentPath, utilice el siguiente SQLinsert into cacheivl (dataid) values ('contentId:collateral_Id');
select object_id from atchrel where atchobjtyp_id = 4 and atchtgt_id in (select atchtgt_id from atchast where atchastpath in ('http://[cmsHost]/contentPath'));