Custom-Tags
Der IES bietet die Möglichkeit neben Templates auch eigene Tags, sog. Custom-Tags, innerhalb eines Mandanten zu erstellen und zu verwenden. Als Custom-Tags bezeichnet man hierbei Templates eines besonderen Typs, die über InfoSite erstellt und bearbeitet werden. Dabei wird für jeden Mandanten ein eigener Namensraum (analog zu spt
) definiert. Die Verwendung solcher Tags unterscheidet sich danach nicht mehr von den SPT-Tags.
<mytaglib:output name="sp_headline" type="html"/>
Zur Erstellung der Custom-Tags bietet der IES zwei Tags:
- sp:attribute
- Tag zur Evaluierung der Variablennamen innerhalb des aktuellen Elementes
- sp:tagbody
- Tag zur Ausgabe des Inhaltes zwischen öffnenden und schließenden Custom-Tag
Da es sich bei den Custom-Tags genau wie bei allen Templates auch um JSP-Seiten handelt, sind hier besondere Regeln einzuhalten. Alle Attribute des Tags müssen in den ersten Zeilen in entsprechender JSP-Syntax definiert werden. Erst danach sind Kommentare (<%-- --%>
) oder andere SP-Tags erlaubt. Für jedes Attribut wird eine eigene Anweisung mit folgender Syntax angegeben:
<%@ attribute name="" required="true|false" rtexprvalue="true|false" %>
Dabei haben die Attribute folgende Bedeutung:
Attribut | Bedeutung |
name | Name des Attributes, welches Sie bereitstellen möchten |
required | Ist die Angabe dieses Attributes verpflichtend |
rtexprvalue | Soll das Attribute über die JSP-EL evaluiert werden (hier ist "false" anzugeben) |
Bei der Erstellung des Custom-Tags muss folgende Syntax für den Namen eingehalten werden:
- Tag-Prefix : Name des Tags
Weiterhin muss der entsprechende Template-Typ Tag-Template ausgewählt werden.
Den Tag-Prefix für die Custom-Tags eines Mandanten können Sie in der Systemadministration festlegen. Bitte beachten Sie, dass jeder Tag-Prefix pro Installation nur einmal verwendet werden darf, da es sonst zwischen unterschiedlichen Mandanten zu Problemen führen kann.
Sowohl für den Tag-Prefix, als auch für den Namen des Tags gelten die Regeln für die Vergabe von Variablennamen.
Beispiele
Border-Custom-Tag
Dieser Custom-Tag (mytaglib:border) soll je nach Typ-Angabe einen Rahmen um einen Text mit optionaler Überschrift zeichnen.
Quelltext des Tag-Templates
<%@ attribute name="type" required="true" rtexprvalue="false" %>
<%@ attribute name="title" required="false" rtexprvalue="false" %>
<sp:attribute name="title"/>
<sp:condition>
<sp:if condition="${type} == 'info'">
<fieldset><legend><sp:print name="title" default="INFO"/></legend>
<center><sp:tagbody/></center>
</fieldset>
</sp:if>
<sp:elseif condition="${type} == 'error'">
<fieldset><legend><sp:print name="title" default="Fehler"/></legend>
<center><sp:tagbody/></center>
</fieldset>
</sp:elseif>
<sp:else>
<span style="border-width:1px; border-style:solid;">
<sp:tagbody/>
</span>
</sp:else>
</sp:condition>
Quelltext des Templates in dem mytaglib:border verwendet wird
<mytaglib:border type="info" title="${sp_headline}">
Eine kleine Infobox!
</mytaglib:border>
<mytaglib:border type="error">
Ein Fehler ist aufgetreten!
</mytaglib:border>
<mytaglib:border type="none">
Normaler Rahmen
</mytaglib:border>
Ausgabe
<fieldset><legend>Eine Überschrift</legend>
<center>Eine kleine Infobox!</center>
</fieldset>
<fieldset><legend>Fehler</legend>
<center>Ein Fehler ist aufgetreten!</center>
</fieldset>
<span style="border-width:1px; border-style:solid;">
Normaler Rahmen
</span>