Skip to main content

bx:pagedata

Mithilfe des Tags pagedata lassen sich die verschiedensten Informationen die Seite betreffend ausgeben.

Funktionen:

pagedata.parentnavid

<bx:pagedata.parentnavid/>

Es wird die Navigations-ID des Elternpunktes (oder leer) ausgegeben.

pagedata.webid

<bx:pagedata.webid/>
<bx:pagedata.customerid/>	<!-- veraltet -->

Gibt die ID des Webs (Projekts) aus

pagedata.webdir

<bx:pagedata.webdir/>
<bx:pagedata.customerdir/>	<!-- veraltet -->

gibt das virtuelle Verzeichnis des Webs aus.

pagedata.webhost

<bx:pagedata.webhost [addscheme]/>

(Verfügbar ab Version 2.7)

Der beim Projekt eingegebene Haupthost wird ausgegeben. Wenn "addscheme" angegeben ist, wird auch das beim Projekt eingestellte Protokoll ausgegeben. Dies ist bei Canonical-Angaben nützlich, wenn nicht der aktuelle Host (wie bei bx:pagedata.hostname/) gebraucht wird, sondern die Hauptdomain.

pagedata.virtualpath

<bx:pagedata.virtualpath [original]/>

Der virtuelle Pfad des Menüpunktes wird ausgegeben. z.B. von http://www.beispielseite.de/produkte/textiles/pullover/ wird ausgegeben: produkte/textiles/pullover

originales wird der ursprüngliche Pfad ausgegeben (bei forwards)

pagedata.navid

<bx:pagedata.navid [level="{n}"]/>							<!-- gibt nur die ID aus -->
<bx:pagedata.navid is="{id}"> Inhalt </bx:pagedata.navid>	<!-- Inhalt wird geladen…nur dann ausgegeben, wenn die ID des aktuellen Menüpunktes mit der ID von "is" übereinstimmt" -->

Navigations-ID des aktuellen Menüpunktes oder eines Elternpunktes Um auch mehrere IDs, die Eltern-ID oder den Pfad abfragen zu können, benutzen Sie bitte pagedata.nav.

levelEbene des gewünschten Navigationspunktes
Hauptmenüpunkt entspricht
level="0"
, Untermenüpunkte liegen jeweils eine Ebene höher
isvorgegebene ID
NOTfunktioniert hier nicht, bitte pagedata.nav verwenden

pagedata.navpath

<bx:pagedata.navpath [previous | next] [active | inactive | all] />

Gibt den virtuellen Pfad des Menüpunktes aus, z.B. von http://www.beispielseite.de/produkte/textiles/pullover/ wird ausgegeben: pullover

previous
next
sucht den vorherigen bzw. nächsten Menüpunkt im gleichen Level
active
inactive
all
nur aktive anzeigen (Standard)
nur inactive anzeigen
alle anzeigen

Beispiele

Beispiel Titel

<div style="float:left;width:100px;">
  <a href="<bx:pagedata.navpath previous/>">&laquo; vorherige Seite</a>
</div>
<bx:pagedata.navname />
<div style="float:right;width:100px;text-align:right;">
  <a href="<bx:pagedata.navpath/>">nächste Seite &raquo;</a>
</div>

Ein Blättern zwischen den (aktiven) Menüpunkten einer Ebene. Sieht dann ungefähr so aus:

« vorherige SeiteAngebote für Julinächste Seite »

pagedata.navname

<bx:pagedata.navname [level="{n}"] />

Gib den Name des Menüpunktes oder eines Elternpunktes aus.

levelEbene des gewünschten Navigationspunktes (nur höhere Ebenen vom aktuellen Menüpunkt aus)
Hauptmenüpunkt entspricht
level="0"
, Untermenüpunkte liegen jeweils eine Ebene höher

pagedata.nav

<bx:pagedata.nav {id="{id}" | parent="{id}" | path="{pfad}"} [not] [original]> Inhalt </bx:pagedata.nav>

Entscheidet, ob Inhalt ausgegeben wird anhand von ID(s) oder Pfad

idID des gesuchten Menüpunktes
ab V 2.6.2: es können mehrere ID mit Komma getrennt angegeben werden
parentID des Elternmenüpunktes (findet auch sich selbst als Punkt) ab V 2.7: es können mehrere ID mit Komma getrennt angegeben werden
pathPfad des aktuellen Menüpunktes
notkehrt die Bedingung um
originales wird die Angabe von der ursprünglichen Seite genommen (z.B. bei einem jsp-include )

pagedata.request

Ab V 2.6.3 RC14 wird in den meisten Fällen ein HTML-Encoding gemacht, wo kein encode-Parameter angegeben ist und auch kein bx:tools.htmlencode außen herum ist. Dies verursacht manchmal Probleme:

<bx:pagedata.request name="{param}" [boundary="{text}"] [empty] encode="{ html | javascript | sql | sql-like | sql-rlike | url | xml | plain}"/>	<!-- Ausgabe des Request-Parameters -->
<bx:pagedata.request name="{param}" value="<text>" [true="{text}"] [false="{text}"] />

<bx:pagedata.request name="{param}" [not] [empty]> Inhalt </bx:pagedata.request>					<!-- Auswertung des Request-Parameters -->
<bx:pagedata.request name="{param}" value="{text}" [not]> Inhalt </bx:pagedata.request>

Request-Parameter auswerten

<bx:pagedata.request ... encode="html|javascript|sql|sql-like|sql-rlike|url|xml">

javascript und url gibt's schon seit v2.3, den Rest ab v2.6.2

nameName des Request-Parameters
kann auch einen Platzhalter in der Form
name="[platz]id"
enthalten (siehe Beispiel)
encodeCodierung des Wertes, für JavaScript-Code (Sonderzeichen werden escaped) oder als URL (%nn)
Hiermit kann der ausgegebene Text für verschiedene Formate kodiert werden:
- html - javascript - sql (zur Verwendung in SQL für Strings) - sql-like (zur Verwendung in SQL mit LIKE) - sql-rlike (zur Verwendung in SQL mit RLIKE und REGEXP) - url - xml - plain (überschreibt automatisches Encoding) - htmltext: siehe Beipspiel (3)
Das erspart ein bx:tools, was ansonsten um das bx:pagedata gepackt werden müsste.
boundaryFalls der Parameter mehrfach vorkommt (?para=wert1&para=wert2) wird ohne Angabe von
boundary
nur der Erste ausgegeben,
andernfalls wird der Wert von
boundary
als Trennzeichen benutzt.
not
empty
Falls empty gesetzt ist, wird ein leerer Request-Parameter wie ein nicht vorhander behandelt.
| | seite.htm | seite.htm?p= | seite.htm?p=wert | | --- | --- | --- | --- | | <bx:pagedata.request name="p">... | leer | angezeigt | angezeigt | | <bx:pagedata.request name="p" not>... | angezeigt | leer | leer | | <bx:pagedata.request name="p" empty>... | leer | leer | angezeigt | | <bx:pagedata.request name="p" not empty>... | angezeigt | angezeigt | leer |
seite.htm
<bx:pagedata.request name="p">...leer
<bx:pagedata.request name="p" not>...angezeigt
<bx:pagedata.request name="p" empty>...leer
<bx:pagedata.request name="p" not empty>...angezeigt
valueText, den der Request-Parameter enthalten soll
true
false
Wenn der Wert des Parameters mit value verglichen wird kann entweder  true (wird ausgegeben, wenn gleich) und/oder false (wird ausgegeben, wenn ungleich) verwendet werden oder man setzt den Inhalt, welcher dann bei Übereinstimmung ausgegeben wird (umkehrbar durch not).
ab v2.6.6: es kann auch abgefragt werden, ob der Parameter übergeben wurde oder nicht (siehe Beispiel)

Beispiele

Fall 1 true/false

Beispiel Titel

<bx:pagedata.request name=“test“ value=“3“ true=”ist drei” false=”ist nicht drei” />

Fall 2 true/false

Beispiel Titel

<bx:pagedata.request name=“test“ true=”test ist übergeben” false=”test ist nicht übergeben” />

es wird nicht der Wert abgefragt, sondern ob überhaupt der Parameter übergeben wurde

Beispiel Titel

<bx:pagedata.request name=“test“ encode=”htmltext”/> 

Eingabe: test.htm?test=erste+Zeile%0azweite+Zeile   («%0a» ist ein Zeilenumbruch) →  schreibt «erste Zeile
zweite Zeile» und damit sieht man einen Zeilenumbruch im Browser

pagedata.attribute

Beispiele

Beispiel Titel

speichern.act?feld=[]/Name[containerID]&containerID=12345

Bissl weit hergeholtes Beispiel: ... ich hab keine Ahnung!

Beispiel Titel

speichern.act?feld=[]/Name[containerID]&containerID=12345

Beispiel Titel

test.htm?test=erste+Zeile%0azweite+Zeile  // "%0a" ist ein Zeilenumbruch

<bx:pagedata.request name="test" encode="htmltext"/> // schreibt erste Zeile<br>zweite Zeile und damit sieht man einen Zeilenumbruch im Browser
<bx:pagedata.attribute name="{attrib}" />														<!-- schreibt den Wert des Attributes (falls vorhanden) in die Seite -->
<bx:pagedata.attribute name="{attrib}" [not]> Inhalt </bx:pagedata.attribute>					<!-- gibt den Tag-Inhalt aus, wenn das Attribut vorhanden ist -->
<bx:pagedata.attribute name="{attrib}" value="{text}" [not]> Inhalt </bx:pagedata.attribute>	<!-- vergleicht den Wert des Attributes mit dem Wert von value und gibt den Tag-Inhalt bei Übereinstimmung aus -->

Ein Request-Attribute, das z.B. durch JSP-Includes oder das bx:setattribute gesetzt wurde, kann ausgewertet werden.

nameName des Request-Attributs
valuebeliebiger Text, der mit dem Attribut übereinstimmen muß (oder auch nicht bei
not
)

pagedata.setattribute

<bx:pagedata.setattribute mode="[copy | set | remove]" name="{name}"> Inhalt </bx:pagedata.setattribute>

Ein Request-Attributekann gesetzt, geändert oder gelöscht werden.

nameName des Request-Attributs
modecopy: Zeigt den Taginhalt in der Seite an und kopiert ihn in das Request-Attribut set: Kopiert den Inhalt in das Request-Attribut aber zeigt ihn nicht in der Seite an remove: löscht das Request-Attribut (das Tag wird geschlossen verwendet)

pagedata.scriptattribute

<bx:pagedata.scriptattribute name="{attrib}" />																<!-- gibt den Wert des Script-Attributes (falls vorhanden) aus -->
<bx:pagedata.scriptattribute name="{attrib}" [not]> Inhalt </bx:pagedata.scriptattribute>					<!-- gibt den Tag-Inhalt aus, wenn das Script-Attribut vorhanden ist -->
<bx:pagedata.scriptattribute name="{attrib}" value="{text}" [not]> Inhalt </bx:pagedata.scriptattribute>	<!-- vergleicht den Wert des Script-Attributes mit dem Wert von value und gibt den Tag-Inhalt bei Übereinstimmung aus -->

Ein Script-Attribut, das z.B. durch Actions gesetzt wurde, kann ausgewertet werden.

nameName des Script-Attributs
valuebeliebiger Text, der mit dem Attribut übereinstimmen muß (oder auch nicht bei
not
)

pagedata.setscriptattribute

<bx:pagedata.setscriptattribute mode="[copy | set | remove]" name="{name}" [trim]> Inhalt </bx:pagedata.setscriptattribute>

Ein Script-Attribut kann gesetzt, geändert oder gelöscht werden.

nameName des Script-Attributs
modecopy: Gibt den Taginhalt aus und kopiert ihn in das Script-Attribut set: Kopiert den Taginhalt in das Script-Attribut aber zeigt ihn nicht an remove: löscht das Script-Attribut (das Tag wird geschlossen verwendet)

pagedata.listrequest

<bx:pagedata.listrequest/>

alle Request-Parameter werden als 'hidden' Formularfeld in die Seite geschrieben

pagedata.querystring

<bx:pagedata.querystring [original]/>

QueryString ausgeben

Ein '?' am Anfang ist in der Ausgabe nicht enthalten. GePOSTete Parameter sind nicht enthalten! Falls dieses Tag im HTML-Quelltext (z.b. für Links) verwendet wird, muss die Ausgabe noch durch bx:tool.urlencode umgewandelt werden.

originales wird der ursprüngliche QueryString ausgegeben (bei forwards)

pagedata.meta

<bx:pagedata.meta name="<meta>" />													<!-- schreibt den Wert der Meta-Eigenschaft (falls vorhanden) in die Seite -->
<bx:pagedata.meta name="<meta>" [not]> Inhalt </bx:pagedata.meta>					<!-- gibt den Tag-Inhalt aus, wenn die Meta-Eigenschaft vorhanden ist -->
<bx:pagedata.meta name="<meta>" value="<text>" [not]> Inhalt </bx:pagedata.meta>	<!-- vergleicht den Wert der Eigenschaft mit dem Wert von value und gibt den Tag-Inhalt bei Übereinstimmung aus -->

Metadaten auswerten

nameName der Meta-Eigenschaft
valuebeliebiger Text, der mit der Meta-Eigenschaft übereinstimmen muß (oder auch nicht bei
not
)

pagedata.cookie

<bx:pagedata.cookie name="{cookie}" />													<!-- schreibt den Wert des Cookies (falls vorhanden) in die Seite -->
<bx:pagedata.cookie name="{cookie}" [not]> Inhalt </bx:pagedata.cookie>					<!-- gibt den Tag-Inhalt aus, wenn der Cookie vorhanden ist -->
<bx:pagedata.cookie name="{cookie}" value="{text}" [not]> Inhalt </bx:pagedata.cookie>  <!-- vergleicht den Wert des Cookies mit dem Wert von value und gibt den Tag-Inhalt bei Übereinstimmung aus -->

Wertet vom Browser übergebene Cookies aus.

pagedata.hostname

<bx:pagedata.hostname [addscheme] />													<!-- gibt den Hostnamen des Servers aus (wenn Port != 80 Ausgabe = hostname:port -->
<bx:pagedata.hostname match="{regex}" [addscheme] [not]> Inhalt </bx:pagedata.hostname>	<!-- vergleich des Hostnames mit einem regulären Ausdruck (ab v2.5.5)-->

Der Hostname (und evtl. Port) der aktuellen Anfrage wird ausgegeben.

matchRegulärer Ausdruck
addschemegibt zusätzlich das Protokoll (http:// oder
https://)
des aktuellen Seitenaufrufs aus

Beispiele

Wenn man im Web von batix. com folgende Tags einbindet:

Beispiel Titel

<bx:pagedata.hostname/>

wir ausgegeben: www.batix.com

Beispiel Titel

<bx:pagedata.hostname addscheme/>

 wird ausgegeben: http://www.batix.com (ab v2.5.8)

Beispiel Titel

<bx:pagedata.hostname match=".*\.[com|net]"> Sie haben unsere net- oder com-Domain aufgerufen.</bx:pagedata.hostname>

beim Aufruf von www.batix.de oder www.batix.eu wird der Text nicht ausgegeben, beim Aufruf von www.batix.com oder www.batix.net schon.

pagedata.sessionid

<bx:pagedata.sessionid/>

Die Session-ID wird ausgegeben. Wenn es noch keine Session gibt, dann wird eine erstellt und dann ausgegeben, außer man gibt "no-create" an* (ab V 2.6.9)*

pagedata.sessionurl

<bx:pagedata.sessionurl/>

Session-URL-Komponente (;jsessionid=) ausgeben, falls Cookies ausgeschaltet sind

pagedata.url

<bx:pagedata.url [encode="html"] />

Dieser Befehl schreibt die komplette Request-URL inklusive Query-String in die Seite. Falls encode="html" angegeben ist, werden <, >, ", & und ' durch ihre HTML-Umschreibungen ersetzt.

pagedata.filename

<bx:pagedata.filename [original]/> 															<!-- der Dateiname wird ausgegeben (z. B. "index.htm") -->
<bx:pagedata.filename equals="{vergleichsname}" [not] [original]> ... </bx:pagedata.filename>	<!-- Taginhalt wird nur ausgeführt, wenn der aktuelle Dateiname dem angegebenen Namen entspricht (ab v2.5.7) -->

Gibt den virtuellen Dateinamen aus der gerade aufgerufenen URL zurück. Wenn die Seite mit "/" aufgerufen wird, behandelt das Tag den Namen als "index.htm".

originales wird der ursprüngliche Dateiname ausgegeben (bei forwards)

pagedata.errortext

<bx:pagedata.errortext/>

Fehlertext in eine Fehlerseite schreiben. Der Befehl ist nur in der Fehlerseite "/www/[host-dir]/errorpage/index.htm" verfügbar. (ab* v2.3.15)*

pagedata.errorstacktrace

<bx:pagedata.errorstacktrace/>

Schreibt den Stacktrace einer Exception in die Fehlerseite. Der Befehl ist nur in der Fehlerseite "/www/[host-dir]/errorpage/index.htm" verfügbar. seit v2.5.8

pagedata.remoteip

<bx:pagedata.remoteip/>			<!-- schreibt die IP-Adresse des Clients (der die Abfrage macht) in die Seite. (z. B. um sie in einen Container zu speichern)  -->
<bx:pagedata.remoteip equals="{testip}" [not]> Inhalt </bx:pagedata.remoteip>		<!-- Vergleich der IP und entsprechende Ausgabe des Tag-Inhalts -->
<bx:pagedata.remoteip host="{hostname}" [not]> Inhalt  </bx:pagedata.remoteip>
<bx:pagedata.remoteip matches="{regex}" [not]> Inhalt  </bx:pagedata.remoteip>

(ab v2.5.7)

Beispiele

Beispiel Titel

<bx:pagedata.remoteip matches="123\.210\.12\.[0-9]+">
 <a href="...">Intranet</a>
</bx:pagedata.remoteip>

 Inhalt nur für IP-Adressen im Bereich "123.210.12.*" zeigen

pagedata.scheme

<bx:pagedata.scheme/>

Gibt das Protokoll zurück. ("http" oder "https") (ab* v2.5.8*)

pagedata.compressed

<bx:pagedata.compressed />			<!-- es wird ".bxmin" ausgegeben* -->
<bx:pagedata.compressed>.bxmin</bx:pagedata.compressed>  <!-- der Inhalt des Body (im Beispiel ebenfalls ".bxmin")wird ausgegeben, ansonsten wird keine Ausgabe gemacht* -->

Unterscheidet abhängig vom Projektstatus die Einstellung der Scriptkomprimierung (ab* v2.6.2*). *Greift, wenn das Projekt auf Produktiv und "Style- und Script-Compressor" im Projekt angehakt ist.

pagedata.status

<bx:pagedata.status type="{dev | prod | debug}"> ... </bx:pagedata.status>

Zeigt abhängig vom Projektstatus den Taginhalt an (ab* v2.6.2*).

Beispiele

Beispiel Titel

<script src="tools<bx:pagedata.status type="prod">.bxmin</bx:pagedata.status>.js"></script>

Wenn das System auf "Produktiv" gestellt ist, wird tools.bxmin.js ausgegeben, sonst tools.js

pagedata.charset

<bx:pagedata.charset />

Gibt den Zeichensatz aus, der beim Projekt bzw. beim Design angegeben wurde. Wenn bei beiden nichts angegeben wurde, wird nichts ausgegeben und es gilt der Standard der Servlet-API (iso-8859-1)

pagedata.writecontenttype

<bx:pagedata.writecontenttype/>  

Gibt folgendes aus: <meta http-equiv="Content-Type" content="[mimetype]; charset=[Zeichensatz]> Bisher wird es immer von Hand reingeschrieben und bei Änderung des Seiteneincodngs passen die Zeichensätze nicht mehr zusammen.

pagedata.header

<bx:pagedata.header name="..." (value|matches|contains)="[Vergleichswert]" [not]>

Beispiele

Beispiel Titel

<a href="<bx:pagedata.header name="Referer"/>">zurück</a>
<bx:pagedata.header name="Referer" not>Direkt eingetippt</bx:pagedata.header>
<bx:pagedata.header name="accept-language" contains="es">¡hola!</bx:pagedata.header>
<bx:pagedata.header name="User-Agent" matches=".*(google|bing|yahoo).*">Hallo Suchmaschine!</bx:pagedata.header>

Verweise auf diese Seite:

(8 Verweise)