OpenCms/cms:include
Se utiliza para incluir archivos del OpenCms VFS dinámicamente en tiempo de ejecución. Este archivo es tratado como una request con parámetros opcionales.
Hay distintas opciones para determinar el nombre del archivo incluido utilizando los siguientes atributo:
- page
- property
- attribute
Si ninguno de estos atributos se han seteado, el cuerpo del tag <cms:include> es evaluado y el resultado se utiliza como el nombre del archivo. Si aun no se puede resolver el nombre, se utiliza el valor del método getUri() del CmsRequestContext actual.
Atributos
editar- page|file
- Nombre del archivo incluido.
- property
- Nombre de una propiedad del JSP, que a su vez especifica el nombre del archivo incluido.
- attribute
- Clave de la entrada en la hashtable de request, correspondiente al nombre del archivo incluido.
- element
- Si la JSP incluida está dividida en elementos mediante el tag cms:template, solo el elemento especificado de la JSP será incluido. El atributo element es tratado como un parámetro adicional de request.
- suffix
- Agrega un sufijo al nombre del archivo.
- cachable
- Si es false, el archivo incluido no será cacheado por Flexcache.
Cuerpo
editarSe puede utilizar código scriplet para determinar el nombre del archivo incluido. Se pueden agregar claves/valores adicionales a la hastable de parámetros de request para pasarlos como el archivo incluido, por ejemplo:
<cms:param name="myparam" value="myvalue" />
Ejemplo de uso
editarIncluir la JSP some_page.html:
<cms:include page="some_page.html" />
ó
<cms:include file="some_page.html" />
Evaluar el cuerpo para determinar el nombre del archivo:
<cms:include> <cms:property name="template" file="parent"/> </cms:include>
Incluir un archivo seteando su nombre en la hashtable de atributos de request:
<% ... request.setAttribute("body", "../elements/template-body.html" ); ... %>
<cms:include attribute="body"> <cms:param name="__locale"><%= locale %></cms:param> </cms:include>
Incluir el archivo especificado en el atributo file. Agregar parámetros adicionales a la request de los archivos incluidos:
<cms:include file="../elements/template-nav-top.jsp"> <cms:param name="__locale"><%= locale %></cms:param> <cms:param name="__navpart" value="toprow" /> </cms:include>
Incluir el elemento head de la JSP especificada por la propiedad template:
<cms:include property="template" element="head" />