Les attributs sont les variables calculées par le portail et qui peuvent alors être exploitées par les pages JSP. Ces attributs sont placés dans la portée de la requête et peuvent être récupérée soit par du code Java au sein des JSP, soit par des EL (Expressions Languages). La meilleure approche est celle des EL.
Exemple d'affichage d'un attribut via du code Java :
<p>
<%=request.getAttribute("osivia.attribut").toString() %>
</p>
Exemple d'affichage d'un attribut à l'aide des EL :
<p>
${requestScope['osivia.attribut']}
</p>
Exemple d'affichage d'un attribut à l'aide des EL et de la taglib JSTL "core" :
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<p>
<c:out value="${requestScope['osivia.attribut']}" escapeXml="false" />
</p>
L'API du portail OSIVIA propose un certain nombre d'attributs pouvant être utilisés afin de personnaliser les layouts ou les régions de la charte. La liste de ces attributs est accessible au travers de constantes définies dans la classe org.osivia.portal.api.Constants.
Les attributs sont regroupés dans des paquets ; cette organisation permet au portail de ne charger que les paquets dont la page a besoin, ce qui permet d'économiser une charge inutile (par exemple, calculer le fil d'Ariane alors que la page ne l'affiche pas).
Pour définir de nouveaux attributs, il faut alors créer un nouveau paquet, puis exploiter le mécanisme des customizers.
Le nouveau paquet d'attributs doit implémenter l'interface org.osivia.portal.api.theming.IAttributesBundle. Cette interface dispose de deux méthodes :
Le customizer doit avoir comme identifiant la valeur de la constante CUSTOMIZER_ID de l'interface org.osivia.portal.api.theming.IAttributesBundle.
Son action consiste à retourner une valeur calculée du paquet lorsque le nom de l'attribut passé en paramètre appartient à la liste des noms de ce paquet.