Définir le renderer d'un composant.
Javlo permet d'associer un ou plusieurs renderer (un fichier jsp) à un composant, ce dernier pouvant varier suivant la configuration et de sa position.
Fichier de référence
nom du fichier : /component-config/#COMP_TYPE#.properties
Un fichier ayant comme nom le type du composant avec l'extension .properties donne la liste des renderer (ainsi que d'autres options). La clé pour un renderer commence toujours par "renderer.".
Exemple de références à des renderer
renderer.products=/jsp/components/page-reference/product_list.jsp?image=false
renderer.products-image=/jsp/components/page-reference/product_list.jsp?image=true
renderer.products-hover=/jsp/components/page-reference/product_hover.jsp
renderer.square=/jsp/components/page-reference/square.jsp
Il est possible de changer de renderer en fonction de l'area dans laquelle le composant se trouve.
renderer.square.#area#=/jsp/components/page-reference/square_side.jsp
Créer un renderer
exposé en jstl, par défaut, d'autres éléments peuvent être exposé par un composant spécifique :
- comp : l'instance du composant (extend IContentVisualComponent)
- compPage : the current page (PageBean)
- style : style
- value : raw value
- type : le type du composant
- compid : id du composant
- renderer : renderer actif
- previewAttributes : class et id pour l'édition du composant
- previewCSS : class css pour éditer le composant + class css du composant
- previewClass : class css pour éditer le composant
- previewID : id pour l'édition du composant
- cssStyle : style configurer dans le composant
- cssClass : class configurer dans le composant
- manualCssClass : class ajouter manuellement dans le composant
- previousSame : true si le composant précédent est du même type
- nextSame : true si le composant suivant est du même type
Exemple (internal-link)
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"
%><%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"
%><a href="${url}" id="${previewID}" class="${comp.style} ${previewCSS}">${label}</a>
Faire référence à un contenu structuré : DynamicComponent
Dans un renderer si on a accès à une "page" par exemple une liste de page, il est toujours possible d'avoir accès aux données structurées de la page, qui sont introduite par les DynamicComponent.
${page.contentAsMap.dynamicComponent.peson.firstname}