Form (SP-Tag)
Name
<sp:form> - Erzeugt ein HTML-Form-Tag
Syntax
<sp:form command="command" enctype="multipart/form-data" method="post">
...
</sp:form>
Beschreibung
Erzeugt eine HTML-Form. Dieses Tag wird benötigt, um Eingabe-Masken zu erstellen, mit deren Hilfe Daten des Servers bearbeitet werden sollen.
Attribute
Name | Type | Required | Default | ab IES Version |
---|---|---|---|---|
uri
|
Text | Nein | None | 2 |
template
|
Attribute | Nein | None | 2 |
handler
|
Text | Nein | None | 2 |
module
|
Text | Nein | None | 2 |
context
|
Text | Nein | None | 2 |
nameencoding
|
Text | Nein | escff , wenn Formular an eine PHP-Seite gesendet wird
|
1 |
enctype
|
Text | Nein | None | 1 |
method
|
Text | Nein | None | 1 |
id
|
Text | Nein | None | 1 |
name
|
Text | Nein | None | 1 |
command (deprecated ab Version 2.0)
|
Text | Nein | None | 1 |
locale
|
Locale | Nein | None | 1 |
Dynamische Attribute | Text | Nein | None | 1 |
uri
- Dies kann ein beliebiger Pfad zu einer Seite sein. sp:form sorgt dafür, dass alle Session-Informationen mitgesendet werden, sodass die Session nicht verloren geht. Wird bei SPML-Seiten weder das Attribut
uri
nochtemplate
angegeben, so wird die aktuelle URL angesprochen.
template
- Template, an das das Formular gesendet werden soll. Dieses Attribut sollte nur für Umstellungen von Live-Seiten verwendet werden, die sich durch den Wegfall der Kommandos ergeben. Prinzipiell sollten Live-Seiten und Webapplikationen gemeinhin nicht mit Templates, sondern mit SPML-Seite realisiert werden.
handler
- Handler, an den das Formular gesendet werden soll. Handler werden vor der, mit
uri
odertemplate
angegebenen Seite ausgeführt.
module
- SPML-Seiten sind immer Teil einer Webapplikation. Jede Webapplikation besitzt einen Context-Pfad mit dem die URL beginnt (Es existert auch ein ROOT-Context-Pfad (/)). Soll das Formular an eine Seite gesendet werden, die in einer anderen Webapplikation liegt, so wird mit diesem Attribut die ID dieser Webapplikation angegeben.
context
- SPML-Seiten sind immer Teil einer Webapplikation. Jede Webapplikation besitzt einen Context-Pfad mit dem die URL beginnt (Es existert auch ein ROOT-Context-Pfad (/)). Soll die URL einer Seite herausgeschrieben werden, die in einer anderen Webapplikation liegt, so wird mit diesem Attribut der Context-Pfad angegeben. Context-Pfade von Webapplikationen können sich ändern. Damit bei solchen Änderungen auch die URL richtig generiert wird, sollte in den meisten Fällen das Attribut
module
verwendet werden.
nameencoding
- Die innerhalb von sp:form liegenden Input-Tags (sp:text, spt:text, sp:checkbox, ...) erhalten vom IES generierte Feldnamen, die unter Umständen (wenn sie z.B. innerhalb von sp:iterator liegen) Sonderzeichen wie eckige Klammern (
[
,]
) enthalten können. Beim Aufbau von Live-Seiten, die in PHP eingebettet sind, wird das Formular an PHP-Seiten gesendet. Da Request-Parameternamen mit Sonderzeichen von PHP nicht richtig ausgewertet werden, ist es mit diesem Attribut möglich, die Formularfeldnamen zu encoden, damit keine Sonderzeichen mehr enthalten sind. Vom IES unterstüzte Encodings für Feldnamen sind:- escff (default)
- Wandelt nur die Zeichen des Feldnamens um, die zu Fehlern führen können z.B. Eckige Klammern (
[]
). Beispiel: Aussp_iterator[1].sp_body
wirdescff:sp_iterator:5b:1:5d::2e:sp_body
. Dieses Encoding kein Standardencoding, sondern eine proprietäre Entwicklung von Sitepark. - hex
- Wandelt jedes Zeichen des Feldnamens in den entsprechenden Hex-Wert um. Beispiel: Aus
sp_body
wirdhex:73705f626f6479
command
(deprecated ab Version 2.0)- Deprecated. Dieses Attribut ist veraltet und wird in zukünftigen Versionen nicht mehr unterstüzt werden. Kommandos wurden in der Version 2.0 zugunsten einer flexibleren Lösung abgeschafft. Ein Kommando bestand aus einem Template mit einem optionalen Handler. Für jede Template-Handler-Kombination musste ein eigenes Kommando angelegt werden. Diese Verbindung wurde aufgebrochen und durch zwei neue Attribute
template
undhandler
ersetzt. Um einen Handler aufzurufen und anschließend ein Template auszuführen, ist nun die Definition eines Kommandos nicht mehr nötig. Um einen Handler aufzurufen und anschließend ein Template auszuführen, verwenden Sie die beiden Attributehandler
undtemplate
. Um einen Handler aufzurufen und anschließend eine SPML-Seite auszuführen, verwenden Sie die Attributehandler
unduri
.
- Existierendes Command. Muss im GUI definiert worden sein.
enctype
- Bestimmt den Typ der zu übertragenden Daten:
- text/plain
- text/plain ist die default Einstellung.
- multipart/form-data
- Für Datei-Uploads muss multipart/form-data angegeben werden.
method
- Bestimmt die Übertragungsmethode: get oder post. Bei get werden die Parameter offen über die aufzurufende URL übermittelt, bei post verborgen im HTTP-Protokoll. Für Datei-Uploads ist post Pflicht.
locale
- Dieses Attribut dient zur Auswahl der zu verwendende Sprache bei mehrsprachiger Variablen.
id
- Optionale id für den erzeugten HTML-Form-Tag. Ist dieses Attribut nicht gesetzt, wird automatisch eine ID generiert
name
- Optionaler Name für das erzeugte Formular.
- Dynamische Attribute
- Dynamische Attribute sind beliebige HTML-Attribute, die evaluiert und bis zum HTML-Tag durchgereicht werden..
Beispiele
Neuen Artikel anlegen
Template Quelltext
<sp:form uri="mytest/test.spml" handler="com.sitepark.ies.control.jsp.handler.InformationHandler" method="post">
<input type="hidden" name="SYS_INFE_action" value="create"/>
<input type="hidden" name="SYS_INFE_parent" value="<sp:print name="${parentPool}"/>"/>
<input type="hidden" name="SYS_INFE_articleType" value="resource"/>
Name<br>
<input type="text" name="SYS_INFE_name"/><br>
<br>
Titel<br>
<sp:text name="sp_title"/><br>
Text<br>
<sp:textarea name="sp_body"/><br>
<input type="submit" value=" submit ">
</sp:form>