Vorteile
Die FormEngine bringt eine kleine Tag-Bibliothek mit, mit deren Hilfe Formulare initialisiert und ausgegeben werden können.
Die FormEngine-Tag-Library bietet folgende Vorteile:
- Nutzung der FormEngine in Web-Frameworks (z. B. JSF, Spring), innerhalb anderer Tab-Bibliotheken und in JSPX-Vorlagen, die keinen Skript-Code in den Templates zulassen.
- Die Kombination mit anderen Tag Libraries wie z. B. JSTL und die Nutzung der Expression Language (EL) kann konsequent in Ihrer Java-EE-Anwendung verfolgt werden.
- Saubere Trennung von Logik und Ansicht
Deklaration
Zur Einbindung eines Formulars in ein Template sind zwei Taglib-Deklarationen notwendig. Bei der ersten handelt es sich um die FormEngine-Taglib selbst, bei der zweiten um eine Taglib, die für die Einbindung der nötigen JavaScript- und CSS-Ressourcen sorgt.
<%@ taglib prefix="fe" uri="http://www.imatics.de/forms" %>
<%@ taglib prefix="imx" uri="http://www.imatics.de/j2ee" %>
Initialisierung einer Formularinstanz
Mit dem fe:load-form-Tag wird eine Formularinstanz initialisiert und optional als Attribut in einem
beliebigen Gültigkeitsbereich abgelegt (Attribute var und scope).
Das fe:load-form-Tag unterstützt derzeit nur die Angabe der Formulardefinition über eine Ressource-URL,
sprich: die Festlegung der URL einer XML-Datei (Attribut resourcePath).
Über eingebettete Tags vom Typ fe:runtime-param lassen sich Laufzeitparameter für die Formularinstanz
festlegen. Weiterhin können entweder ein Konnektor oder die Daten zur Initialisierung eines in der Formulardefinition
angegebenen Konnektors übergeben werden.
<fe:load-form resourcePath="/pfad/zu/meinem/formular.xml" var="form"
connectorData="${param['id']}">
<fe:runtime-param name="myParamName" value="${myParamValueVar}"/>
</fe:load-form>
Ausgabe der HTML-Ressourcen
Nachdem das Formular initialisiert wurde, müssen die benötigten Ressource wie JavaScript- und CSS-Dateien
im HTML-Kopf eingebunden werden. Dazu dient das Tag imx:print-request-includes.
Ausgabe des Formulars
Nun kann das oben initialisierte Formular im HTML-Body mit fe:render-form ausgegeben werden.
<html>
<head>
<imx:print-request-includes/>
</head>
<body>
<fe:render-form form="${form}"/>
</body>
</html>


