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:
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" %>
Beispiele
Border-Custom-Tag
Dieser Custom-Tag (mytaglib:border) soll je nach Typ-Angabe einen Rahmen um einen Text zeichnen.
Quelltext des Tag-Templates
<%@ attribute name="type" required="false" rtexprvalue="false" %>
<sp:condition>
<sp:if condition="${type} == 'info'">
<fieldset><legend>INFO</legend>
<center><sp:tagbody/></center>
</fieldset>
</sp:if>
<sp:elseif condition="${type} == 'error'">
<fieldset><legend>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">
Eine kleine Infobox!
</mytaglib:border>
<mytaglib:border type="error">
Ein Fehler ist aufgetreten!
</mytaglib:border>
<mytaglib:border>
Normaler Rahmen
</mytaglib:border>
Ausgabe
<fieldset><legend>INFO</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>