## Web Component Framework Tags (de)

Web Component Framework (WCF) tag library. Eine Sammlung wiederverwendbarer JSP Tags, z.B. tree, table, HTML Formular und XSL rendering.

### Content

- calendar
- catedit
- charset
- confirm
- connect
- contentType
- evenOdd
- form
- formbutton
- ifRole
- imgbutton
- include
- linkAction
- linkParam
- logform
- pageStack
- paramLink
- paramLinkGroup
- paramPool
- paramSql
- paramSqlMapping
- pushbutton
- pushParam
- render
- renderParam
- scriptbutton
- scroller
- separator
- setParam
- sqlTable
- sqlTableOrderBy
- sqlTablePageNavigations
- sqlTableSortButton
- statusline
- table
- tablePropertiesForm
- token
- toolbar
- tree
- wizard

### calendar

Body Content | tagdependent
Description | Erzeugt benötigte JavaScript-Anpassungen für die Nutzung des CalendarControl im WCF-Form

Attribute | Required | Type | rtexpr | Description
--- | --- | --- | --- | ---

#### Example

    <wcf:calendar/>

### catedit

Body Content | EMPTY
Description | Erzeugt eine CategoryEditor Komponente. Diese Komponente erzeugt selbst keinen sichtbaren Output, sie wird durch das WCF `render` Tag dargestellt.

Attribute | Required | Type | rtexpr | Description
--- | --- | --- | --- | ---
id | true | String | true | Name des Session Attributes, das durch dieses Tag erzeugt wird
visible | false | boolean | true | Entscheidet, ob die Komponenente sichtbar ist oder nicht. Das WCF Render Tag zeigt eine Komponente mit visible == false nicht an
validate | false | boolean | true | wenn true, werden die Benutzereingaben automatisch uebernommen und geprüft, auch wenn der Button einer anderen Komponente abgeschickt wurde. Dazu müssen allerdings beide Komponenten im selben HTML Formular liegen.
role | false | String | true | Name einer Rolle, optional mit vorangestelltem '!'. Beispiel role='tomcat' erlaubt allen Mitgliedern der Rolle 'tomcat' den Zugriff, role='!tomcat' erlaubt allen ausser den Mitgliedern der Rolle 'tomcat' den Zugriff.
model | false | String | true | EL expression that resolves to a com.tonbeller.wcf.catedit.CategoryModel

#### Example

### charset

Body Content | empty
Description | prints the character encoding configured in the charset filter.

Attribute | Required | Type | rtexpr | Description
--- | --- | --- | --- | ---

#### Example

    <meta http-equiv=Content-Type content="text/html; charset=<wcf:charset/>">

### confirm

Body Content | tagdependent
Description | Ein Bestätigungsdialog. Wird von anderen Komponenten verwendet, nicht stand-alone nutzbar

Attribute | Required | Type | rtexpr | Description
--- | --- | --- | --- | ---
id | false | String | true | Name des Session Attributs das von diesem Tag erzeugt wird. Default ist "confirmForm"
xmlUri | false | String | true | URI of the form XML. Defaults to "/WEB-INF/wcf/confirm.xml"
visible | false | boolean | true | Entscheidet, ob die Komponenente sichtbar ist oder nicht. Das WCF Render Tag zeigt eine Komponente mit visible == false nicht an
validate | false | boolean | true | wenn true, werden die Benutzereingaben automatisch uebernommen und geprüft, auch wenn der Button einer anderen Komponente abgeschickt wurde. Dazu müssen allerdings beide Komponenten im selben HTML Formular liegen.

#### Example

    <wcf:confirm id="confirmForm"  xmlUri="/WEB-INF/wcf/confirm.xml" visible="false"/>

### connect

Body Content | EMPTY
Description | Deprecated. Verwenden Sie statt dessen das "validate" Attribut der meisten WCF Komponenten, das ist einfacher zu verwenden und meist ausreichend. Verbindet WCF Komponenten. Auf diese Weise wirken die Buttons des einen Formulars auch auf das andere. Verbindet man z.B. einen Tree und ein Formular, so wird der Tree seine Selektion lesen, wenn im Formular der OK button gedrückt wird.

Attribute | Required | Type | rtexpr | Description
--- | --- | --- | --- | ---
form1 | true | String | true | Form 1
form2 | true | String | true | Form 2

#### Example

    <jsp:useBean id="testbean" class="com.tonbeller.wcf.form.TestBean" scope="session" />
    <wcf:form id="formcomp" xmlUri="/WEB-INF/formdemo.xml" model="#{testbean}"/>
    <wcf:tree id="tree01"/>
    <wcf:connect form1="#{formcomp}" form2="#{tree01}"/>

    <form action="formdemo.jsp" method="POST" id="form01">
      <wcf:render ref="#{formcomp}" xslUri="/WEB-INF/wcf/wcf.xsl" xslCache="true"/>
      <wcf:render ref="#{tree01}" xslUri="/WEB-INF/wcf/wcf.xsl" xslCache="true">
        <wcf:renderParam name="border" value="1"/>
      </wcf:render>
    </form>

### contentType

Body Content | empty
Description | setzt den content-type der response und haengt ";charset=xxx" an, wobe xxx der charset des CharsetFilter ist.

Attribute | Required | Type | rtexpr | Description
--- | --- | --- | --- | ---
type | true | String | true | mime type, e.g. "text/html"

#### Example

    <wcf:contentType type="text/html"/>
    will set the content-type to
      "text/hmtl; charset=UTF-8"
    if UTF-8 is configured in the CharsetFilter.

### evenOdd

Body Content | empty
Description | appends "-even" or "-odd" to its class attribute depending on the current loop status.

Attribute | Required | Type | rtexpr | Description
--- | --- | --- | --- | ---
clazz | false | String | true | Name of the CSS class prefix
even | false | String | true | Wenn clazz == null: Text der in geraden Zeilen ausgegeben wird
odd | false | String | true | Wenn clazz == null: Text der in ungeraden Zeilen ausgegeben wird

#### Example

          <style>
            td.mytable-even { ... }
            td.mytable-odd { ... }
          </style>
          ...
          <c:forEach ...>
            <td class="<wcf:evenOdd clazz='mytable'/>">
            ...
            <!-- produces the same result as above -->
            <td class="<wcf:evenOdd even='mytable-even' odd='mytable-odd'/>">
          </c:forEach>

### form

Body Content | tagdependent
Description | Erzeugt ein HTML Formular, das durch eine XML Datei beschrieben wird. Diese Komponente erzeugt selbst keinen sichtbaren Output, sie wird durch das WCF `render` Tag dargestellt. Aufbau der XML Datei
    <xform style="twocolumn">
      <title value="Form Demo">
        <imgButton label="Cancel" .../>
      </title>
      <textField type="int" modelReference="intValue" label="Count" .../>
      <checkBox modelReference="nestedBean.boolValue" label="Check Me" .../>
    </xform>
erzeugt ein Formular mit einer Titelzeile, einem Close-Button in der rechten oberen Ecke, einem Textfeld und einer Checkbox. Data binding Der Form Komponente wird eine JavaBean zugeordnet. Die Eingabe Elemente des HTML Formulars werden über das `modelReference` Attribut an die Properties dieser Bean gebunden. In obigem Beispiel hat die Bean ein Integer Property mit dem Namen `intValue`, das über das `<textField ...>` modifiziert werden kann. Das `modelReference` Attribut kann ein EL (JSTL Expression Language) Ausdruck sein, wie bei der Checkbox. `nestedBean.boolValue` entspricht in Java `bean.getNestedBean().getBoolValue()`. Vordefinierte Werte für das `type` Attribut sind: boolean string date int posint - integer >= 0 double email Element IDs Die Namen der HTTP Parameter werden von einem Zufallsgenerator erzeugt. Wenn dies nicht gewünscht wird (z.B. bei Unit Tests, oder wenn RequestListener auf bestimmte HTTP Parameter registriert sind), kann ein `id` Attribut verwendet werden.
    <xform style="twocolumn">
      <textField id="field1" .../>
      <checkBox id="$id.field2" .../>
    </xform>
erzeugt zwei HTML Eingabefelder, das erste mit `name="field1"`, das zweite mit `name="myform.field2"`, wobei `myform` das `id` Attribut dieses form tags ist. Form Elemente Die Elemente werden durch `/WEB-INF/wcf/controls.xsl` dargestellt, Details sind dort entnehmen. Formelemente: label textField textArea password checkBox radioButton listBox1 listBoxN imgButton button Über das `disabled="true"` Attribut können die Elemente "read-only" gemacht werden. Mit `required="true"` erzeugt Feld, für das eine Eingabe erforderlich ist. Form Buttons Über das Attribut `handler="com.tonbeller.wcf.form.ButtonHandler"` wird die für diesen Button zuständige Java Klasse definiert. Einfacher ist die Verwendung des Attributes "actionReference". Das Attribut enthält den Namen einer Methode der Bean, die einen RequestContext als einzigen Parameter nimmt. Diese Methode wird aufgerufen, wenn der Anwender den Knopf drückt. action="revert" - liest die Bean Properties und formatiert die Daten für die Anzeige action="validate" - liest die Benutzereingabe und schreibt die Werte zurück in die Bean Properties forward="/some/page.jsp" - Wenn die Validierung erfolgreich war (d.h. keine Fehler in der Benutzereingabe) wird auf diese Seite verzweigt. Die Seite kann sinnvoll durch Parameter festgelegt werden. hide="true" - Wenn die Validierung erfolgreich war, wird die Komponente unsichtbar. successAttr="name-of-request-attribute" - Wenn die Validierung erfolgreich war, wird ein Request Attribut mit dem Wert `true` erzeugt. actionReference="methodName" s.o. handler="..." s.o. Bookmarks Vgl com.tonbeller.wcf.bookmark. Die editierbaren Bean Properties koennen via Bookmarkable Interface gespeichert und restauriert werden. Dies muss ueber das Tag Attribut bookmarkable="true" aktiviert werden. Beispiele Siehe WCF Beispiele in /WEB-INF

Attribute | Required | Type | rtexpr | Description
--- | --- | --- | --- | ---
id | true | String | true | Name des Session Attributes, das durch dieses Tag erzeugt wird
xmlUri | true | String | true | Pfad einer XML Datei, die das HTML Formular beschreibt, relativ zum Application Context. Es können verschiedene Stylesheets für verschiedene Locales hinterlegt werden, die Auswahl erfolgt anhand des Dateinamens analog zu Java ResourceBundles. Bsp: `xmlUri='/WEB-INF/myform.xml'`, für einen deutschen Browser wird versucht, die Datei `/WEB-INF/myform_de.xml` zu laden. Gelingt dies nicht, wird `/WEB-INF/myform.xml` geladen.
visible | false | boolean | true | Entscheidet, ob die Komponenente sichtbar ist oder nicht. Das WCF Render Tag zeigt eine Komponente mit visible == false nicht an
validate | false | boolean | true | wenn true, werden die Benutzereingaben automatisch uebernommen und geprüft, auch wenn der Button einer anderen Komponente abgeschickt wurde. Dazu müssen allerdings beide Komponenten im selben HTML Formular liegen.
role | false | String | true | Name einer Rolle, optional mit vorangestelltem '!'. Beispiel role='tomcat' erlaubt allen Mitgliedern der Rolle 'tomcat' den Zugriff, role='!tomcat' erlaubt allen ausser den Mitgliedern der Rolle 'tomcat' den Zugriff.
bundle | false | String | true | ResourceBundle für i18n Ersetzungen. Wenn ein Text- oder Attributnode mit 'fmt:' beginnt wird der Rest als Key für das ResourceBundle interpretiert.
model | true | String | true | EL Ausdruck der die JavaBean bezeichnet, die editiert werden soll
bookmarkable | false | boolean | true | true|false, zeigt an ob der Zustand der bean gespeichert werden soll. Default ist false
finishButton | false | boolean | true | true|false, zeigt an ob das Formular einen Fertigstellen-Button anbietet, auch wenn dies nicht die letzte Seite in einem Wizard ist (vorzeitiges Beenden). Default ist true

#### Example

    <jsp:useBean id="testbean" class="com.tonbeller.wcf.form.TestBean" scope="session" />
    <wcf:form id="formcomp" xmlUri="/WEB-INF/formdemo.xml" model="#{testbean}"/>
    <form action="formdemo.jsp" method="POST" id="form01">
      <wcf:render ref="#{formcomp}" xslUri="/WEB-INF/wcf/wcf.xsl" xslCache="true"/>
    </form>

#### Example

    <xform style="twocolumn">
      <title value="fmt:fetch.title.from.resource.bundle">
        <imgButton id="cancel" src="wcf/form/cancel.png" action="revert" label="Cancel" forward="tabledemo.jsp" handler="com.tonbeller.wcf.form.ButtonHandler"/>
      </title>

      <!-- Text control -->
      <textField id="string" type="string" modelReference="stringValue" label="Text:"    value="" title="please enter some text"/>
      <textField id="int"    type="int"    modelReference="intValue"    label="Integer:" value="" title="please enter an integer"/>
      <textField id="double" type="double" modelReference="doubleValue" label="Decimal number:"    value="" title="please enter a decimal number"/>
      <textField id="date"   type="date"   modelReference="dateValue"   label="Date:"    value="" title="please enter a date"/>
      <textField id="dateTime" type="dateTime"   modelReference="dateTimeValue"   label="Date/Time:"    value="" title="please enter a date/time"/>

      <!-- Password control -->
      <password id="password" type="string" modelReference="password" label="Password:" value=""/>

      <!-- Text area -->
      <textArea id="textarea" rows="7" cols="40" type="string" modelReference="textArea" label="Text area:" value="This is a text area"/>

      <checkBox id="checkbox1" modelReference="checkBox1" label="check box 1"/>
      <checkBox id="checkbox2" modelReference="checkBox2" label="check box 2"/>

      <!-- ListBox, single selection -->
      <listBox1 id="list1" type="int" modelReference="list1" label="List, single selection:">
        <listItem id="list1.1" value="1" label="list item 1"/>
        <listItem id="list1.2" value="2" label="list item 2"/>
        <listItem id="list1.3" value="3" label="list item 3"/>
        <listItem id="list1.4" value="4" label="list item 4"/>
      </listBox1>

      <!-- ListBox, multiple selection -->
      <listBoxN id="listN" type="int" modelReference="listN" label="List, multiple selection:">
        <listItem id="listN.1" value="1" label="list item 1"/>
        <listItem id="listN.2" value="2" label="list item 2"/>
        <listItem id="listN.3" value="3" label="list item 3"/>
        <listItem id="listN.4" value="4" label="list item 4"/>
      </listBoxN>

      <!-- ListBox, single selection, dynamic item list -->
      <listBox1 id="listbox" type="int" modelReference="dynList" label="List, dynamic content:" handler="com.tonbeller.wcf.form.TestItems"/>

      <label label="This is a label" value="value attribute goes here"/>
      <label label="Dynamic label (content from TextArea)" modelReference="textArea"/>

      <radioButton id="radio1" modelReference="radioButton1" group-id="group1" label="radio button 1"/>
      <radioButton id="radio2" modelReference="radioButton2" group-id="group1" label="radio button 2"/>

      <buttons>
        <button id="cancel" action="revert" label="Cancel" forward="tabledemo.jsp" handler="com.tonbeller.wcf.form.ButtonHandler"/>
        <button id="revert" action="revert" label="Revert" handler="com.tonbeller.wcf.form.ButtonHandler"/>
        <button id="validate" action="validate" label="Validate" handler="com.tonbeller.wcf.form.ButtonHandler"/>
        <button id="ok" action="validate" label="OK" forward="tabledemo.jsp" handler="com.tonbeller.wcf.form.ButtonHandler"/>
      </buttons>

    </xform>

### formbutton

Body Content | empty
Description | Submit Button für ein WCF form

Attribute | Required | Type | rtexpr | Description
--- | --- | --- | --- | ---
id | true | String | true | ID des Buttons, der Button kann in EL durch `TOOLBAR_ID.buttons.BUTTON_ID` angesprochen werden
img | true | String | true | Name der Bilddatei. Die erzeugten URLs sind `APPCONTEXT/wcf/toolbar/IMG-up.png` und `APPCONTEXT/wcf/toolbar/IMG-down.png`
radioGroup | false | String | true | Name einer 'Radio Group'. Höchstens ein Button einer Gruppe kann gedrückt sein.
tooltip | false | String | true | Key im ResourceBundle des Toolbars für den Tooltip dieses Buttons
visibleRef | false | String | true | `true`, `false` oder ein EL Ausdruck eines boolean property. Der Button wird nur dann angezeigt, wenn das property true ist.
role | false | String | true | Name einer Rolle, optional mit vorangestelltem '!'. Beispiel role='tomcat' erlaubt allen Mitgliedern der Rolle 'tomcat' den Zugriff, role='!tomcat' erlaubt allen ausser den Mitgliedern der Rolle 'tomcat' den Zugriff.
action | false | String | true | entweder "revert" oder "validate"
forward | true | String | true | URI der JSP die bei erfolgreicher Validierung angezeigt werden soll
form | true | String | true | EL Ausdruck der das Formular bezeichnet

#### Example

    <jsp:useBean id="testbean" class="com.tonbeller.wcf.form.TestBean" scope="session" />
    <wcf:form id="formcomp" xmlUri="/WEB-INF/formdemo.xml" model="#{testbean}"/>
    <wcf:toolbar id="toolbar01" bundle="com.tonbeller.wcf.toolbar.resources">
      <wcf:formbutton ... action="validate" forward="newpage.jsp" form="#{formcomp.form}"/>
    </wcf:toolbar>

### ifRole

Body Content | JSP
Description | Ein condition tag das prueft, ob der Anwender eine Rolle innehat.

Attribute | Required | Type | rtexpr | Description
--- | --- | --- | --- | ---
role | false | String | true | Name einer Rolle, optional mit vorangestelltem '!'. Beispiel role='tomcat' erlaubt allen Mitgliedern der Rolle 'tomcat' den Zugriff, role='!tomcat' erlaubt allen ausser den Mitgliedern der Rolle 'tomcat' den Zugriff.

#### Example

    <wcf:ifRole role="tomcat">
      <h1>Hi, Tomcat</h1>
    </wcf:ifRole>

### imgbutton

Body Content | empty
Description | Ein Toolbar Button mit statischem Hyperlink

Attribute | Required | Type | rtexpr | Description
--- | --- | --- | --- | ---
id | true | String | true | ID des Buttons, der Button kann in EL durch `TOOLBAR_ID.buttons.BUTTON_ID` angesprochen werden
img | true | String | true | Name der Bilddatei. Die erzeugten URLs sind `APPCONTEXT/wcf/toolbar/IMG-up.png` und `APPCONTEXT/wcf/toolbar/IMG-down.png`
tooltip | false | String | true | Key im ResourceBundle des Toolbars für den Tooltip dieses Buttons
visibleRef | false | String | true | `true`, `false` oder ein EL Ausdruck eines boolean property. Der Button wird nur dann angezeigt, wenn das property true ist.
role | false | String | true | Name einer Rolle, optional mit vorangestelltem '!'. Beispiel role='tomcat' erlaubt allen Mitgliedern der Rolle 'tomcat' den Zugriff, role='!tomcat' erlaubt allen ausser den Mitgliedern der Rolle 'tomcat' den Zugriff.
href | true | String | true | das `href` Attribut des hyperlinks. Dabei wird "{0}" durch den Kontextpfad ersetzt, "{1}" durch einen zufaelligen String
target | false | String | true | das `target` Attribut des hyperlinks

#### Example

    <wcf:imgbutton  id="button5" img="button" href="/some/path" visibleRef="#{toolbean.checkBox1}"/>

### include

Body Content | EMPTY
Description | Fügt eine JSP Seite ein, wenn ein bestimmter HTTP Parameter vorhanden ist. Der Name der einzufügenden Seite ergibt sich aus prefix + parameter + suffix. Beispiel: Wenn `prefix="/WEB-INF/mypages/"`, `httpParam="page"` und `suffix=".jsp"`, dann wird die URL `?page=page20` die Datei `/WEB-INF/mypages/page20.jsp` eingefügt. Ist der Parameter `page` im HTTP Request nicht vorhanden, wird keine Datei eingefügt.

Attribute | Required | Type | rtexpr | Description
--- | --- | --- | --- | ---
id | true | String | true | Name des Session Attributes, das durch dieses Tag erzeugt wird
httpParam | true | String | true | Name des HTTP Parameters
prefix | false | String | true | Prefix
suffix | false | String | true | Suffix

#### Example

    <wcf:include id="include01" httpParam="query" prefix="/WEB-INF/queries/" suffix=".jsp"/>

### linkAction

Body Content | JSP
Description | Wenn der Anwender auf den Link klickt wird eine Methode in der Target Bean aufgerufen.

Attribute | Required | Type | rtexpr | Description
--- | --- | --- | --- | ---
target | true | String | true | EL that evaluates to the target bean
method | true | String | true | name of the method. The method must have the signature `void methodName(RequestContext context) throws Exception;`

#### Example

          <paramLinkGroup id="myParam">
            ...
            <wcf:paramLink page="/customer.jsp">
              click here!!
              <wcf:linkParam
                name="CUSTOMERID"
                sqlValue="${result.customerId}"/>
              <wcf:linkAction
                target="${customerViewHelper}"
                method="onClick"/>
            </wcf:paramLink>
            ...
          </paramLinkGroup>

### linkParam

Body Content | JSP
Description | adds another SessionParam to a paramLink tag. Must be nested inside a paramLink tag.

Attribute | Required | Type | rtexpr | Description
--- | --- | --- | --- | ---
paramName | true | String | true | Name des Session Parameters
displayName | false | String | true | Sichtbarer Name des Session Parameters
displayValue | false | String | true | Sichtbarer Wert des Session Parameters
sqlValue | false | String | true | SQL Wert des Session Parameters
mdxValue | false | String | true | MDX Wert des Session Parameters
textValue | false | String | true | Textkonstante als Wert des Session Parameters

#### Example

          <paramLinkGroup id="myParam">
            ...
            <!-- single parameter -->
            <wcf:paramLink
              page="/customer.jsp"
              name="CUSTOMERID"
              sqlValue="${result.customerId}">
              click here!!
            </wcf:paramLink>
            ...
            <!-- multiple parameters -->
            <wcf:paramLink page="/customer.jsp">
              click here!!
              <wcf:linkParam
                name="CUSTOMERID"
                sqlValue="${result.customerId}"/>
              <wcf:linkParam
                name="SCOREID"
                sqlValue="${result.scoreId}"/>
            </wcf:paramLink>
            ...
          </paramLinkGroup>

### logform

Body Content | JSP
Description | Ein HTML Formular in dem die Logging Optionen für Apache log4j eingestellt werden können.

Attribute | Required | Type | rtexpr | Description
--- | --- | --- | --- | ---
id | true | String | true | Name des Session Attributes, das durch dieses Tag erzeugt wird
visible | false | boolean | true | Entscheidet, ob die Komponenente sichtbar ist oder nicht. Das WCF Render Tag zeigt eine Komponente mit visible == false nicht an
validate | false | boolean | true | wenn true, werden die Benutzereingaben automatisch uebernommen und geprüft, auch wenn der Button einer anderen Komponente abgeschickt wurde. Dazu müssen allerdings beide Komponenten im selben HTML Formular liegen.
role | false | String | true | Name einer Rolle, optional mit vorangestelltem '!'. Beispiel role='tomcat' erlaubt allen Mitgliedern der Rolle 'tomcat' den Zugriff, role='!tomcat' erlaubt allen ausser den Mitgliedern der Rolle 'tomcat' den Zugriff.
xmlUri | true | String | true | Pfad einer XML Datei, die das HTML Formular beschreibt, relativ zum Application Context. Es können verschiedene Stylesheets für verschiedene Locales hinterlegt werden, die Auswahl erfolgt anhand des Dateinamens analog zu Java ResourceBundles. Bsp: `xmlUri='/WEB-INF/myform.xml'`, für einen deutschen Browser wird versucht, die Datei `/WEB-INF/myform_de.xml` zu laden. Gelingt dies nicht, wird `/WEB-INF/myform.xml` geladen.
logDir | true | String | true | Name eines Verzeichnisses, relativ zu `user.home` oder - falls in `user.home` keine Schreibrechte vorhanden sind, relativ zu `java.io.tmpdir`. In dieses Verzeichnis werden einige Konfigurationsdateien für log4j erzeugt. Sie können in dieses Verzeichnis auch eigene Konfigurationsdateien ablegen, die dann in dem Formular ausgewählt werden können.

#### Example

    <wcf:logform id="logdemo" xmlUri="/WEB-INF/logdemo.xml" logDir=".wcf/logging"/>
    <form action="logdemo.jsp" method="POST" id="logform">
      <wcf:render ref="logdemo" xslUri="/WEB-INF/wcf/wcf.xsl" xslCache="true"/>
    </form>

### pageStack

Body Content | JSP
Description | Zeigt dem Benutzer seine aktuelle Position, z.B. Sie befinden sich hier: Page 1 : Page 2

Attribute | Required | Type | rtexpr | Description
--- | --- | --- | --- | ---
var | false | String | true | Name der Loop Variablen vom Typ com.tonbeller.wcf.pagestack.Page
page | false | String | true | URL der aktuellen Seite
pageId | false | String | true | Identifiziert diesen Eintrag. Falls nicht vorhanden wird das page Attribut genommen. Dadurch kann eine JSP durch eine andere ersetzt werden.
title | false | String | true | Titel der aktuellen Seite
key | false | String | true | Holt den Titel der Seite aus dem aktuellen JSTL Resource Bundle, das z.B. auch von JSTLs <fmt:message../> verwendet wird
clear | false | boolean | true | Leert den Stack bevor diese Seite hinzugefügt wird
varStatus | false | String | true | Name der JSTL LoopTagStatus Variablen. Diese Variable enthält Properties zum aktuellen Iterationsdurchlauf, wie `index` (0-basiserter Zaehler), `count` (1-basierter Zaehler), `first, last` boolean flags fuer ersten und letzten Durchlauf und einige andere. Details finden Sie in der JSTL Dokumentation
bundle | false | String | true | ResourceBundle für i18n Ersetzungen

#### Example

          <div class="pagestack">
            You are here:
            <wcf:pageStack var="p" varStatus="status" page="thispage.jsp" title="This Page Title">
              <c:if test="${not status.first}">
                &gt;
              </c:if>
              <a href="<c:out value='${p.page}'/>"><c:out value="${p.title}"/></a>
            </wcf:pageStack>
          </div>

### paramLink

Body Content | JSP
Description | Outputs an <a href="..."> hyperlink. Stores a List of SessionParam's and Actions. If the user clicks on the hyperlink, the SessionParam instances will be activated, i.e. they will be set into the SessionParamPool. Then the actions are executed. Finally it forwards to the target page. A single parameter may be specified through attributes of this tag, if multiple parameters are required, nested linkParam tags may be used. The generated URL is "secure" because it contains a random number only. Users can not change it in the browsers location field for example.

Attribute | Required | Type | rtexpr | Description
--- | --- | --- | --- | ---
page | false | String | true | target page
target | false | String | true | HTML target base
token | false | boolean | true | Wenn "true" wird ein token in die URL generiert, welches den Benutzer daran hindert, den Browser Back Button zu verwenden. Default ist "false".
paramName | false | String | true | Name des Session Parameters
displayName | false | String | true | Sichtbarer Name des Session Parameters
displayValue | false | String | true | Sichtbarer Wert des Session Parameters
sqlValue | false | String | true | SQL Wert des Session Parameters
mdxValue | false | String | true | MDX Wert des Session Parameters
textValue | false | String | true | Textkonstante als Wert des Session Parameters

#### Example

          <paramLinkGroup id="myParam">
            ...
            <!-- single parameter -->
            <wcf:paramLink
              page="/customer.jsp"
              target="_blank"
              paramName="CUSTOMERID"
              sqlValue="${result.customerId}">
              click here!!
            </wcf:paramLink>
            ...
            <!-- multiple parameters -->
            <wcf:paramLink page="/customer.jsp">
              click here!!
              <wcf:linkParam
                paramName="CUSTOMERID"
                sqlValue="${result.customerId}"/>
              <wcf:linkParam
                paramName="PRODUCTID"
                sqlValue="${result.productId}"/>
            </wcf:paramLink>

            ...
          </paramLinkGroup>

### paramLinkGroup

Body Content | JSP
Description | groups a set of paramLink tags. When the start tag is executed, the links generated on previous pages are invalidated.

Attribute | Required | Type | rtexpr | Description
--- | --- | --- | --- | ---
id | true | String | true | Name des Session Attributes, das durch dieses Tag erzeugt wird
hideIf | false | String | true | EL expression. If the EL returns true, no links will be rendererd.

#### Example

    <wcf:paramLinkGroup id="mylinks"...>
      <wcf:paramLink .../>
      <wcf:paramLink .../>
    </wcf:paramLinkGroup/>

#### Example

    <wcf:paramLinkGroup id="mylinks" hideIf="#{mybean.printMode}">
      <wcf:paramLink .../>
      <wcf:paramLink .../>
    </wcf:paramLinkGroup/>

### paramPool

Body Content | JSP
Description | ensures the SessionParamPool exists in the session with id="paramPool". Similar to jsp:useBean

Attribute | Required | Type | rtexpr | Description
--- | --- | --- | --- | ---

#### Example

    <wcf:paramPool/>

### paramSql

Body Content | JSP
Description | erzeugt SQL syntax für einen session parameter

Attribute | Required | Type | rtexpr | Description
--- | --- | --- | --- | ---
param | false | String | true | Name des Session Parameters.
qname | false | String | true | qualified name of the default column. This is used if parameter expression does not contain its own column id's

#### Example

          <wcf:paramLink
            page="/customer.jsp"
            name="CUSTOMERID"
            sqlValue="${result.customerId}">
            click here!!
          </wcf:paramLink>
          ...
          <sql:query>
            SELECT ...
            FROM CUSTOMERS T1, ...
            WHERE <wcf:paramSql param="CUSTOMERID" qname="T1.CUSTOMER_PK"/>
            AND ...
          </sql:query>

### paramSqlMapping

Body Content | JSP
Description | Maps column IDs from SQL Expressions to column alias names. For example, if a SQL Parameter contains the expression `CUSTOMERID = 123 AND PRODUCTID = 'ABC'`, then in a concrete SQL you may want to generate `T1.CUSTOMER_PK = 123 AND T2.PRODUCT_FK = 'ABC'"`. You can do this by mapping `CUSTOMERID` to `T1.CUSTOMER_PK` and `PRODUCTID` to `T2.PRODUCT_FK`. Complex conditions that need mappings usually are created by application code.

Attribute | Required | Type | rtexpr | Description
--- | --- | --- | --- | ---
column | true | String | true | Name der Column in der SQL Expression
qname | true | String | true | qualified name im generierten SQL

#### Example

          <sql:query>
            SELECT ...
            FROM CUSTOMERS T1, LINE_ITEMS T2, ...
            WHERE
              <wcf:paramSql param="COMPLEX_CONDITION">
                <wcf:paramSqlMapping column="CUSTOMERID" qname="T1.CUSTOMER_PK"/>
                <wcf:paramSqlMapping column="PRODUCTID" qname="T2.PRODUTCT_FK"/>
              </wcf:paramSql>
            AND ...
          </sql:query>

### pushbutton

Body Content | empty
Description | Ein Toolbar Button, der ein boolean JavaBean Property `pressed` besitzt, das seinen Zustand widerspiegelt.

Attribute | Required | Type | rtexpr | Description
--- | --- | --- | --- | ---
id | true | String | true | ID des Buttons, der Button kann in EL durch `TOOLBAR_ID.buttons.BUTTON_ID` angesprochen werden
img | true | String | true | Name der Bilddatei. Die erzeugten URLs sind `APPCONTEXT/wcf/toolbar/IMG-up.png` und `APPCONTEXT/wcf/toolbar/IMG-down.png`
radioGroup | false | String | true | Name einer 'Radio Group'. Höchstens ein Button einer Gruppe kann gedrückt sein.
tooltip | false | String | true | Key im ResourceBundle des Toolbars für den Tooltip dieses Buttons
visibleRef | false | String | true | `true`, `false` oder ein EL Ausdruck eines boolean property. Der Button wird nur dann angezeigt, wenn das property true ist.
role | false | String | true | Name einer Rolle, optional mit vorangestelltem '!'. Beispiel role='tomcat' erlaubt allen Mitgliedern der Rolle 'tomcat' den Zugriff, role='!tomcat' erlaubt allen ausser den Mitgliedern der Rolle 'tomcat' den Zugriff.
pressed | false | String | true | Initialer Zustand des Buttons

#### Example

    <wcf:toolbar id="toolbar01" bundle="com.tonbeller.wcf.toolbar.resources">
      <wcf:pushbutton id="button4" img="button"/>
      ...
    </wcf:toolbar>
    ...
    <c:if test="${toolbar01.buttons.button4.pressed">
      <h1>Button Pressed!!</h1>
    </c:if>

### pushParam

Body Content | JSP
Description | Ersetzt die Attribute eines SessionParam beim Start Tag und restauriert sie beim End Tag.

Attribute | Required | Type | rtexpr | Description
--- | --- | --- | --- | ---
paramName | true | String | true | Name des Session Parameters
displayName | false | String | true | Sichtbarer Name des Session Parameters
displayValue | false | String | true | Sichtbarer Wert des Session Parameters
sqlValue | false | String | true | SQL Wert des Session Parameters
mdxValue | false | String | true | MDX Wert des Session Parameters
textValue | false | String | true | Textkonstante als Wert des Session Parameters

#### Example

          CUSTOMER_ID = 999
          <wcf:pushParam name="CUSTOMER_ID" value="#{bean.myProperty}">
            render page as if CUSTOMER_ID was bean.getMyProperty()
          </wcf:pushParam>
          now is back to CUSTOMER_ID = 999

### render

Body Content | JSP
Description | WCF Komponenten erzeugen intern ein XML Document (W3C DOM), das mit einem XSLT Stylesheet in das Ausgabeformat konvertiert wird. Das Ausgabeformat ist meist HTML, kann aber auch ein anderes Textformat sein (z.B. CSV). Das render Tag produziert keinen output, wenn die Komponente nicht sichtbar ist (d.h. wenn ihr `visible` Property `false` ist). Der body kann renderParam Tags enthalten, das Parameter definiert. Folgende Parameter werden automatisch bereitgestellt (ohne explizite Angabe): `renderId` - contains the id of this tag. If not set the modelReference is taken `context` - the context path of the application for building URLs Parameter können sowohl im XSLT Stylesheet angsesprochen werden (über das <xsl:param .. > Element) als auch im `DOM`. Das render Tag sucht nach <param name=".."/> Elementen im `DOM` und erzeugt entsprechende Attribute im Parent Element. Im folgenden Beispiel wird aus dem `DOM`
          <myelem>
            <param name="abc" attr="bcd"/>
          </myelem>
der neue `DOM`
          <myelem bcd="efg">
            <param name="abc" attr="bcd"/>
          </myelem>
wobei `efg` der Wert des Parameters `abc` ist, der vom JSP Author definiert wurde. Wurde kein Parameter mit dem Namen `abc` definiert, so wird das Attribut `bcd` entfernt. Dies kann z.B. verwendet werden, um den Page Flow einer Anwendung über JSP zu steuern:
            <button label="OK" action="validate" handler="...">
              <param name="successPage" attr="forward"/>
            </button>
Es wird ein `forward` Attribut im button Element erzeugt, dessen Wert durch den JSP Autor über ein renderParam Tag festgelegt wird, z.B:
            <wcf:renderParam name="successPage" value="/somepage.jsp"/>

Attribute | Required | Type | rtexpr | Description
--- | --- | --- | --- | ---
id | false | String | true | the renderId Stylesheet parameter
ref | true | Component | true | Name des Session Attributes, das die anzuzeigende Komponente enthält.
xslUri | true | String | true | Pfad des XSLT Stylesheets, relativ zum Application Context. Es können verschiedene Stylesheets für verschiedene Locales hinterlegt werden, die Auswahl erfolgt anhand des Dateinamens analog zu Java ResourceBundles. Bsp: `xslUri="/WEB-INF/mystyle.xsl"`, für einen deutschen Browser wird versucht, die Datei `/WEB-INF/mystyle_de.xsl` zu laden. Gelingt dies nicht, wird `/WEB-INF/mystyle_de.xsl` geladen.
xslCache | false | boolean | true | true, wenn das Stylesheet kompiliert und dann wiederverwendet werden soll. Das führt zu besserer Performance, erschwert aber das Erstellen der Stylesheets. Empfohlen: `true` für produktiven Einsatz und `false` während der Entwicklung

#### Example

    <wcf:tree id="tree01"/>
    <wcf:render ref="#{tree01}" xslUri="/WEB-INF/wcf/wcf.xsl" xslCache="true">
      <wcf:renderParam name="border" value="1"/>
    </wcf:render>

### renderParam

Body Content | tagdependent
Description | Definiert einen Stylesheet Parameter für das render Tag. Wenn es im Body des render Tags definiert wird, gilt der Parameter nur für die eine Transformation. Andernfalls wird die Lebensdauer durch das Scope Attribut bestimmt. Genau eines der Attribute name oder test muss vorhanden sein.

Attribute | Required | Type | rtexpr | Description
--- | --- | --- | --- | ---
name | false | String | true | Der Name des Parameters
value | false | String | true | Der Value des Parameters. Wenn der Wert mit '#{' beginnt, wird er als EL Ausdruck interpretiert. Andernfalls wird der literale Wert genommen
scope | false | String | true | Die Lebensdauer des Parameters: 'request' (default), 'session', 'application'.
test | false | String | true | wenn vorhanden, wird der body nur ausgewertet wenn der Parameter vorhanden ist

#### Example

    <wcf:renderParam name="language" value="en" scope="session"/>
    <wcf:render ...>
      <wcf:renderParam name="border" value="0"/>
    </wcf:render>
    <wcf:renderParam test="language" value="en">
      This is english.
    </wcf:renderParam>
    <wcf:renderParam test="language" value="!en">
      This is not english.
    </wcf:renderParam>

### scriptbutton

Body Content | empty
Description | Ein Toolbar Button, der an ein boolean JavaBean Property gebunden ist

Attribute | Required | Type | rtexpr | Description
--- | --- | --- | --- | ---
id | true | String | true | ID des Buttons, der Button kann in EL durch `TOOLBAR_ID.buttons.BUTTON_ID` angesprochen werden
img | true | String | true | Name der Bilddatei. Die erzeugten URLs sind `APPCONTEXT/wcf/toolbar/IMG-up.png` und `APPCONTEXT/wcf/toolbar/IMG-down.png`
radioGroup | false | String | true | Name einer 'Radio Group'. Höchstens ein Button einer Gruppe kann gedrückt sein.
tooltip | false | String | true | Key im ResourceBundle des Toolbars für den Tooltip dieses Buttons
visibleRef | false | String | true | `true`, `false` oder ein EL Ausdruck eines boolean property. Der Button wird nur dann angezeigt, wenn das property true ist.
role | false | String | true | Name einer Rolle, optional mit vorangestelltem '!'. Beispiel role='tomcat' erlaubt allen Mitgliedern der Rolle 'tomcat' den Zugriff, role='!tomcat' erlaubt allen ausser den Mitgliedern der Rolle 'tomcat' den Zugriff.
model | true | String | true | EL Ausdruck eines boolean JavaBean Properties

#### Example

    <wcf:scriptbutton id="button2" img="button" model="#{toolbean.radioButton1}" radioGroup="radio1" visibleRef="#{toolbean.checkBox1}"/>

### scroller

Body Content | JSP
Description |

Attribute | Required | Type | rtexpr | Description
--- | --- | --- | --- | ---

### separator

Body Content | empty
Description | Fügt eine Lücke zwischen Toolbar Buttons ein

Attribute | Required | Type | rtexpr | Description
--- | --- | --- | --- | ---
size | false | String | true | Breite in pixeln
visibleRef | false | String | true | `true`, `false` oder ein EL Ausdruck eines boolean property. Der Button wird nur dann angezeigt, wenn das property true ist.
role | false | String | true | Name einer Rolle, optional mit vorangestelltem '!'. Beispiel role='tomcat' erlaubt allen Mitgliedern der Rolle 'tomcat' den Zugriff, role='!tomcat' erlaubt allen ausser den Mitgliedern der Rolle 'tomcat' den Zugriff.

#### Example

    <wcf:separator/>

### setParam

Body Content | JSP
Description | Ersetzt die Attribute eines SessionParam.

Attribute | Required | Type | rtexpr | Description
--- | --- | --- | --- | ---
paramName | true | String | true | Name des Session Parameters
displayName | false | String | true | Sichtbarer Name des Session Parameters
displayValue | false | String | true | Sichtbarer Wert des Session Parameters
sqlValue | false | String | true | SQL Wert des Session Parameters
mdxValue | false | String | true | MDX Wert des Session Parameters
textValue | false | String | true | Textkonstante als Wert des Session Parameters

#### Example

          CUSTOMER_ID = 999
          <wcf:setParam name="CUSTOMER_ID" value="#{bean.myProperty}"/>
          now CUSTOMER_ID is bean.getMyProperty()

### sqlTable

Body Content | JSP
Description | Eine Tabelle die Sortieren und Blättern in einem JSTL sql:query result erlaubt. Sortierung und Blättern wird von der Datenbank durchgeführt, daher sind sehr große Datenmengen möglich.

Attribute | Required | Type | rtexpr | Description
--- | --- | --- | --- | ---
id | true | String | true | Name des Session Attributes, das durch dieses Tag erzeugt wird
maxRows | false | int | true | Anzahl Records pro Seite
orderBy | false | String | true | Name der Spalte nach der sortiert wird
nestedOrderBy | false | String | true | Name einer zusätzlichen Spalte nach der sortiert wird
descending | false | boolean | true | Initiale Sortierung

#### Example

    <form action="my.jsp" method="POST">
      <wcf:sqlTable id="mytable" maxRows="200" orderBy="CUSTOMER" descending="true">
        <sql:query var="result" maxRows="${mytable.maxRows}" startRow="${mytable.startRow}">
          SELECT   ...
          FROM ...
          WHERE ...
          <wcf:sqlTableOrderBy />
        </sql:query>
        <table border="1" cellspacing="0" cellpadding="2">
          <tr>
            <th><wcf:sqlTableSortButton column="CUSTOMER"/>&nbsp;Customer</th>
            ... more column headings ...
          </tr>
          <c:forEach var="row" items="${result.rows}">
            <tr>
              <td>
                <c:out value="${row.CUSTOMER}"/>
              </td>
              ... more columns ...
            </tr>
          </c:forEach>
          <tr>
            <td colspan="7">
              <wcf:sqlTablePageNavigations result="${result}"/>
            </td>
          </tr>
        </table>
      </wcf:sqlTable>
    </form>

### sqlTableOrderBy

Body Content | empty
Description | gibt das "ORDER BY [column-name]" der SQL Query aus. Wird innerhalb eines <sql:query> Tags verwendet.

Attribute | Required | Type | rtexpr | Description
--- | --- | --- | --- | ---

### sqlTablePageNavigations

Body Content | empty
Description | erzeugt einen Dialog zum Blättern

Attribute | Required | Type | rtexpr | Description
--- | --- | --- | --- | ---
result | true | String | true | Das Ergebnis der SQL Query

### sqlTableSortButton

Body Content | empty
Description | erzeugt einen Sortier Button

Attribute | Required | Type | rtexpr | Description
--- | --- | --- | --- | ---
column | true | String | true | Name der Spalte nach der Sortiert werden soll

### statusline

Body Content | JSP
Description | Displays messages and errors. The body content is the default content that is displayed if there are no errors or messages to display. In case of errors a stack trace will be printed into the generated html - it will be commented out and thus not visible, but you will see it if you choose "view source" in your browser.

Attribute | Required | Type | rtexpr | Description
--- | --- | --- | --- | ---
format | false | String | true | Ausgabeformat: entweder "html" oder "text" (default = "html")
clear | false | boolean | true | Löscht die Statuszeile nach der Ausgabe (default = true!)

#### Example

    <wcf:statusline/>

### table

Body Content | JSP
Description | Erzeugt eine Tabellen Komponente. Diese Komponente erzeugt selbst keinen sichtbaren Output, sie wird durch das WCF `render` Tag dargestellt.

Attribute | Required | Type | rtexpr | Description
--- | --- | --- | --- | ---
id | true | String | true | Name des Session Attributes, das durch dieses Tag erzeugt wird
visible | false | boolean | true | Entscheidet, ob die Komponenente sichtbar ist oder nicht. Das WCF Render Tag zeigt eine Komponente mit visible == false nicht an
validate | false | boolean | true | wenn true, werden die Benutzereingaben automatisch uebernommen und geprüft, auch wenn der Button einer anderen Komponente abgeschickt wurde. Dazu müssen allerdings beide Komponenten im selben HTML Formular liegen.
role | false | String | true | Name einer Rolle, optional mit vorangestelltem '!'. Beispiel role='tomcat' erlaubt allen Mitgliedern der Rolle 'tomcat' den Zugriff, role='!tomcat' erlaubt allen ausser den Mitgliedern der Rolle 'tomcat' den Zugriff.
model | false | String | true | EL Ausdruck der ein com.tonbeller.wcf.table.TableModel bezeichnet
selmode | false | String | true | Zeilen-Auswahlmodus: href, single, multi oder none
closable | false | boolean | true | `true`, `false` oder ein EL Ausdruck eines boolean property. Die "Schließe-Tabelle"-Schaltfläche wird nur dann angezeigt, wenn das property true ist
editable | false | boolean | true | "true" wenn der Anwender Spalten ausblenden kann
sortable | false | boolean | true | `true`, `false` oder ein EL Ausdruck eines boolean property. Die Sortierfunktion wird aktiviert, wenn das property true ist
pagable | false | boolean | true | `true`, `false` oder ein EL Ausdruck eines boolean property. Die Blätterfunktion wird aktiviert, wenn das property true ist
colHeaders | false | boolean | true | `true`, `false` oder ein EL Ausdruck eines boolean property. Spaltenüberschriften werden angezeigt, wenn das property true ist
pagesize | false | int | true | Maximale Zeilenzahl die pro Seite angezeigt werden soll. Die Blätterfunktion muss aktiviert sein (pagable=true)
editForm | false | String | true | DEPRECATED - use editable. Context relative URI einer Formularbeschreibung in XML, mit dem die Benutzer die Einstellungen der Tabelle aendern koennen

#### Example

    <wcf:table id="t1" model="#{tmodel}" selmode="multi" closable="false" sortable="false" pageable="true" pagesize="10"/>
    <wcf:render ref="#{t1}" xslUri="/WEB-INF/wcf/wcf.xsl" xslCache="true"/>

### tablePropertiesForm

Body Content | JSP
Description | Erzeugt eine Tabellen Komponente. Diese Komponente erzeugt selbst keinen sichtbaren Output, sie wird durch das WCF `render` Tag dargestellt.

Attribute | Required | Type | rtexpr | Description
--- | --- | --- | --- | ---
id | true | String | true | Name des Session Attributes, das durch dieses Tag erzeugt wird
visible | false | boolean | true | Entscheidet, ob die Komponenente sichtbar ist oder nicht. Das WCF Render Tag zeigt eine Komponente mit visible == false nicht an
validate | false | boolean | true | wenn true, werden die Benutzereingaben automatisch uebernommen und geprüft, auch wenn der Button einer anderen Komponente abgeschickt wurde. Dazu müssen allerdings beide Komponenten im selben HTML Formular liegen.
role | false | String | true | Name einer Rolle, optional mit vorangestelltem '!'. Beispiel role='tomcat' erlaubt allen Mitgliedern der Rolle 'tomcat' den Zugriff, role='!tomcat' erlaubt allen ausser den Mitgliedern der Rolle 'tomcat' den Zugriff.
xmlUri | true | String | true | Pfad einer XML Datei, die das HTML Formular beschreibt, relativ zum Application Context. Es können verschiedene Stylesheets für verschiedene Locales hinterlegt werden, die Auswahl erfolgt anhand des Dateinamens analog zu Java ResourceBundles. Bsp: `xmlUri='/WEB-INF/myform.xml'`, für einen deutschen Browser wird versucht, die Datei `/WEB-INF/myform_de.xml` zu laden. Gelingt dies nicht, wird `/WEB-INF/myform.xml` geladen.
closable | false | boolean | true | `true` damit die Komponente einen close-button bekommt
table | true | String | true | EL Ausdruck der ein <wcf:table ...> referenziert

#### Example

    <wcf:table id="t1" model="#{tmodel}" selmode="multi" closable="false" sortable="false" pageable="true" pagesize="10"/>
    <wcf:tablePropertiesForm id="t1properties" table="#{t1}"/>
    ...
    <!-- render the table -->
    <wcf:render ref="#{t1}" xslUri="/WEB-INF/wcf/wcf.xsl" xslCache="true"/>
    <!-- render the properties form -->
    <wcf:render ref="#{t1properties}" xslUri="/WEB-INF/wcf/wcf.xsl" xslCache="true"/>

### token

Body Content | EMPTY
Description | Erzeugt ein hidden Input Field um die Verwendung der Browser Back button zu unterbinden. Muss zusammen mit dem TokenFilter verwendet werden.

Attribute | Required | Type | rtexpr | Description
--- | --- | --- | --- | ---
clear | false | boolean | true | Anstelle des HTML hidden field wird das Token gelöscht und einmalig ein Browser Back zugelassen

#### Example

    <form ...>
      <wcf:token/>
    </form>
    or w/o form
      <!-- allow browser back once -->
      <wcf:token clear="true"/>

### toolbar

Body Content | JSP
Description | Erzeugt eine Toolbar Komponente. Die Buttons werden im Body definiert: formbutton pushbutton scriptbutton imgbutton separator Diese Komponente erzeugt selbst keinen sichtbaren Output, sie wird durch das WCF `render` Tag dargestellt.

Attribute | Required | Type | rtexpr | Description
--- | --- | --- | --- | ---
id | true | String | true | Name des Session Attributes, das durch dieses Tag erzeugt wird
visible | false | boolean | true | Entscheidet, ob die Komponenente sichtbar ist oder nicht. Das WCF Render Tag zeigt eine Komponente mit visible == false nicht an
validate | false | boolean | true | wenn true, werden die Benutzereingaben automatisch uebernommen und geprüft, auch wenn der Button einer anderen Komponente abgeschickt wurde. Dazu müssen allerdings beide Komponenten im selben HTML Formular liegen.
role | false | String | true | Name einer Rolle, optional mit vorangestelltem '!'. Beispiel role='tomcat' erlaubt allen Mitgliedern der Rolle 'tomcat' den Zugriff, role='!tomcat' erlaubt allen ausser den Mitgliedern der Rolle 'tomcat' den Zugriff.
bundle | false | String | true | ResourceBundle für Tooltips
globalButtonIds | false | boolean | true |

#### Example

    <wcf:toolbar id="toolbar01" bundle="com.tonbeller.wcf.toolbar.resources">
      <wcf:scriptbutton id="button1" tooltip="testlabel" img="button" model="#{toolbean.checkBox1}"/>
      <wcf:separator/>
      <wcf:scriptbutton id="button2" img="button" model="#{toolbean.radioButton1}" radioGroup="radio1" visibleRef="#{toolbean.checkBox1}"/>
      <wcf:scriptbutton id="button3" img="button" model="#{toolbean.radioButton2}" radioGroup="radio1" visibleRef="#{toolbean.checkBox1}"/>
      <wcf:separator/>
      <wcf:pushbutton id="button4" img="button" visibleRef="#{toolbean.checkBox1}"/>
      <wcf:imgbutton  id="button5" img="button" href="/some/path" visibleRef="#{toolbean.checkBox1}"/>
    </wcf:toolbar>

### tree

Body Content | EMPTY
Description | Erzeugt eine Tree Komponente. Diese Komponente erzeugt selbst keinen sichtbaren Output, sie wird durch das WCF `render` Tag dargestellt.

Attribute | Required | Type | rtexpr | Description
--- | --- | --- | --- | ---
id | true | String | true | Name des Session Attributes, das durch dieses Tag erzeugt wird
visible | false | boolean | true | Entscheidet, ob die Komponenente sichtbar ist oder nicht. Das WCF Render Tag zeigt eine Komponente mit visible == false nicht an
validate | false | boolean | true | wenn true, werden die Benutzereingaben automatisch uebernommen und geprüft, auch wenn der Button einer anderen Komponente abgeschickt wurde. Dazu müssen allerdings beide Komponenten im selben HTML Formular liegen.
role | false | String | true | Name einer Rolle, optional mit vorangestelltem '!'. Beispiel role='tomcat' erlaubt allen Mitgliedern der Rolle 'tomcat' den Zugriff, role='!tomcat' erlaubt allen ausser den Mitgliedern der Rolle 'tomcat' den Zugriff.
model | false | String | true | EL expression that resolves to a com.tonbeller.wcf.tree.TreeModel
selectionModel | false | String | true | EL expression that resolves to a com.tonbeller.wcf.selection.SelectionModel

#### Example

    <wcf:tree id="tree01"/>
    <wcf:render ref="#{tree01}" xslUri="/WEB-INF/wcf/wcf.xsl" xslCache="true">
      <wcf:renderParam name="border" value="1"/>
    </wcf:render>

### wizard

Body Content | JSP
Description | Erzeugt eine Wizard Komponente. Diese Komponente erzeugt selbst keinen sichtbaren Output, sie wird durch das WCF `render` Tag dargestellt.

Attribute | Required | Type | rtexpr | Description
--- | --- | --- | --- | ---
id | true | String | true | Name des Session Attributes, das durch dieses Tag erzeugt wird
visible | false | boolean | true | Entscheidet, ob die Komponenente sichtbar ist oder nicht. Das WCF Render Tag zeigt eine Komponente mit visible == false nicht an
validate | false | boolean | true | wenn true, werden die Benutzereingaben automatisch uebernommen und geprüft, auch wenn der Button einer anderen Komponente abgeschickt wurde. Dazu müssen allerdings beide Komponenten im selben HTML Formular liegen.
role | false | String | true | Name einer Rolle, optional mit vorangestelltem '!'. Beispiel role='tomcat' erlaubt allen Mitgliedern der Rolle 'tomcat' den Zugriff, role='!tomcat' erlaubt allen ausser den Mitgliedern der Rolle 'tomcat' den Zugriff.

#### Example

    <wcf:wizard id="wizard01">
      <wcf:form .../>
      <wcf:form .../>
      <wcf:form .../>
    </wcf:wizard>

    <wcf:render ref="#{wizard01}" xslUri="/WEB-INF/wcf/wcf.xsl" xslCache="true"/>