aller au contenu
20/07/2018

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}
 .