<ctrl:list>
Das Ausgabeformat des Listenelementes (HTML, XML, JavaApplet, etc.) wird durch die verwendete Painter Factory festgelegt.
Attribut | Typ | Beschreibung | Pflicht | RTExp | ||||||||||||
action | String |
Gibt die Struts Action an, welche bei Kontrollelement Ereignissen
aufgerufen werden soll.
Dieses Attribut muss nicht angegeben werden, wenn das Tag von einem Struts <html:form> Tag umschlossen ist. in diesem Fall wird der Name der Action über die Struts Formular Bean ermittelt. Anmerkung: Die Action muss in einer der struts-config.xml Dateien deklariert sein. |
![]() |
|||||||||||||
ajax![]() | Boolean |
Aktiviert die AJAX Funktion des Kontrollelementes. Alle
Kontrollelement Ereignisse werden dann mit JavaScript asynchron
an den Server gesendet und dort verarbeitet.
Die Verarbeitung auf dem Server unterscheidet sich nicht von einer normalen Request Behandlung. Der Anwendungsentwickler hat jedoch die Möglichkeit über die Methoden des AjaxRequest Interfaces (Basisklasse von ActionContext) die Ergebnis Rückmeldung zu steuern. Im Normalfall (-> AjaxRequest.isAjaxCanceled() == false) wird ein Delta XML Stream zum Web Browser zurückgeschickt. Dieser Stream enthält nur die schmutzigen Kontrollelemente, welche dann mit Hilfe eines JavaScript Handlers vom Web Browser im HTML DOM Tree selektiv ausgetauscht werden. Es wird also keine vollständige HTML Seite vom Server übertragen!
Die meisten Kontrollelemente fügen sich selbst in die Dirty Liste des ActionContext ein. Hierzu wird einfach die Methode AjaxRequest.markDirty() aufgerufen. Der Anwendungsentwickler hat damit die Möglichkeit noch weitere Kontrollelemente - die durch eine Zustandsänderung ebenfalls schmutzig geworden sind - in den Delta Stream aufzunehmen Wenn der Request eine vollständig neue HTML Seite zurückgeben soll, dann besteht auch die Möglichkeit die AJAX Verarbeitung auf dem Server abzubrechen. Hierzu wird die Methode AjaxRequest.cancelAjaxRequest() aufgerufen. Das Framework sendet danach immer eine vollständige HTML Seite zurück an den Web Browser. Das Common-Controls AJAX XML Protokoll hat das folgende Format: <?xml version="1.0" encoding="UTF-8" ?> <ajax-response> <token/> <controls> <control styleId="" class="" name=""> <html> <[CDATA[...]] > </html> </control> </controls> </ajax-response> |
![]() |
|||||||||||||
border | Integer | Gibt die Stärke des Rahmens an, welcher um das Kontrollelement gezeichnet werden soll. |
![]() |
|||||||||||||
cellPadding | Integer | Setzt das padding von Zellen |
![]() |
|||||||||||||
cellSpacing | Integer | Setzt das Spacing von Zellen |
![]() |
|||||||||||||
createButton | ACL | Gibt an, ob eine Schaltfläche zur Datensatz Neuanlage angezeigt werden soll. Über die Angabe einer Access Control List (ACL) kann die Neuanlage auf bestimmte Berechtigungen beschränkt werden. |
![]() |
|||||||||||||
disabled | Boolean | Über dieses Attribut kann das Kontrollelement deaktiviert werden. Es nimmt dann keine Benutzereingaben entgegen und erzeugt keine Kontrollelement Ereignisse. |
![]() |
|||||||||||||
emptyText | String |
Ein Text welcher im Body des Listenelementes ausgegeben
wird, wenn keine Zeilen vorhanden sind.
Die Zeichenkette wird vor der Ausgabe HTML-codiert |
![]() |
|||||||||||||
exportListButton | ACL | Gibt an, ob eine Schaltfläche zum Datenexport angezeigt werden soll. Über die Angabe einer Access Control List (ACL) kann die Schaltfläche auf bestimmte Berechtigungen beschränkt werden. |
![]() |
|||||||||||||
formElement | Boolean |
Über dieses Attribut wird gesteuert, wie sich das
Kontrollelement im Falle einer Benutzer Aktion verhalten soll.
Anmerkung:
Der Wert |
![]() |
|||||||||||||
height | String |
Setzt die Höhe des Kontrollelmentes. Die Höhe kann absolut oder
prozentual angegeben werden.
Es hängt von dem jeweiligen Kontrollelement Painter ab, ob dieses Attribut ausgewertet wird. Siehe HTML-Dokumentation |
![]() |
|||||||||||||
help | String |
Weist dem Kontrollelement einen Hilfe Bezeichner zu. Es wird
ein Hilfe Symbol neben dem Kontrollelement angezeigt,
welches bei einem Klick einen onHelp Event erzeugt.
Der Bezeichner wird dabei als Parameter übergeben und kann somit
zur Anzeige von kontextabhängigen Hilfetexten benutzt werden.
Das eigentliche Hilfesystem ist nicht Teil des Common-Controls Frameworkes, der onHelp Event kann jedoch zur Verankerung verwendet werden. Für die Erzeugung des Hyperlinks zum Aufruf der Hilfe sind einige vordefinierte Framework Ressourcen zuständig. Diese kann der Anwendungsentwickler global oder auf Kontrollelement Ebene verändern:
Anmerkung: Der Hilfe Bezeichner wird von dem Common-Controls Framework an das Hilfesystem weitergegeben. Die Syntax und Semantik hängt daher von dem verwendeten Hilfesystem ab. |
![]() |
|||||||||||||
hideButtons | Stringliste |
Mit diesem Attribut kann eine Liste von Schaltflächen
ausgeblendet werden. Die auszublendenden Schaltflächen
werden in einer Semikolon getrennten Liste angegeben.
Anmerkung: Mit Semikolon getrennte Liste von Schaltflächen Namen. Die Namen müssen dabei einer der ControlButton.getName() Konstanten entsprechen! |
![]() |
|||||||||||||
id | String |
Weist dem Kontrollelement einen eindeutigen Bezeichner zu.
Im Tag Body wird daraufhin eine Java Variable angelegt, auf
die in Java Scriptlets zugegriffen werden kann.
Diese Variable verweist auf die Kontrollelement Instanz
(abgeleitet von Control).
Dieses Attribut wird meist in Verbindung mit dem type Attribut verwendet Anmerkung: Da zur JSP Compile Zeit eine Java Variable mit diesem Bezeichner angelegt wird, muss hier ein String Literal (und keine Expression!) angegeben werden! Der Bezeichner muss den Regeln für gültiger Java Bezeichner folgen. |
![]() |
|||||||||||||
locale | String |
Weist das Kontrollelement an alle angegebenen
Zeichenkettenliterale als Schlüssel für Textressourcen zu
interpretieren.
Die folgenden Werte sind möglich:
Bei aktivierter Lokalisierung werden die angegebenen Schlüssel von dem registrierten FrameworkAdapter (eine Interface Klasse) mit Hilfe der überschreibbaren localizeKey() Methode übersetzt. Der mitgelieferte StrutsFrameworkAdapter verwendet die in der struts-config.xml registrierten Message Resource Bundles für die Übersetzung des Ressourcen Schlüssels. Zeichenketten die mit einem "#"-Zeichen beginnen werden grundsätzlich nicht lokalisiert (Das "#"-Zeichen wird jedoch abgeschnitten). Alle Zeichenketten die von einem DataModel zurückgeliefert werden, sind ebenfalls von dem Lokalisierungsmechanismus ausgeschlossen, da dies in den Aufgabenbereich der Applikation fällt. |
![]() |
|||||||||||||
minRows | Integer |
Mit diesem Attribut wird die Anzahl der minimal gleichzeitig
dargestellten Zeilen angegeben. Wenn die Gesamtzahl der
verfügbaren Zeilen des Datenmodells kleiner ist als die Anzahl
der angezeigten Zeilen, dann wird die Anzeige mit entsprechend
vielen Leerzeilen aufgefüllt.
Mit dem Wert -1 werden keine zusätzlichen leeren Zeilen erzeugt. |
![]() |
|||||||||||||
name | String |
Gibt den Namen der Java-Bean - eine Instanz der Klasse
Control.
Die Java-Bean muss im angegebenen Scope abgelegt sein.
Wenn das Tag von einem Struts <html:form> Tag umschlossen ist, dann muss kein Bean Name angegeben werden. In diesem Fall wird die Java-Bean über ein Property der Struts Formular Bean gezogen. Anmerkung: Es muss ein gültiger Java Bezeichner angegeben werden. |
![]() |
|||||||||||||
noframe | Boolean | Mit Hilfe dieses Attributes kann der Rahmen des Kontrollelementes unterdrückt werden. Eventuell notwendige Schaltflächen werden rechts über dem Kontrollelement angezeigt (abhängig von der verwendeten PainterFactory. |
![]() |
|||||||||||||
noheader | Boolean | Unterdrückt die Spaltenüberschriften der Liste. |
![]() |
|||||||||||||
pageButtons | Integer | Gibt an wieviele Schaltfläschen zur direkten Seitennavigation angezeigt werden sollen. |
![]() |
|||||||||||||
permission | ACL |
Mit diesem Attribut kann der Zugriff auf das Element
beschränkt werden.
Berechtigungen werden über das Principal Objekt in der Benutzer Session geprüft. Das Principal Objekt wird mit der Methode SecurityUtil.registerPrincipal() in der Session registriert. Es wird vom Anwendungsentwickler durch Implementierung des Principal Interfaces zur Verfügung gestellt. Somit lassen sich sehr einfach beliebige Berechtigungssysteme mit dem Framework verbinden. Berechtigungen werden immer in Form einer Access Control List (ACL) angegeben. Dabei handelt es sich um einen Ausdruck dessen Elemente Einzelberechtigungen sind. Das Framweork unterstützt die folgenden Berechtigungstypen, welche jedoch vom Anwendungsentwickler beliebig erweitert werden können:
Zur Formulierung der Ausdrücke kann die folgende Syntax verwendet werden: PERMISSION_PREFIX : '#' | '$' AND_OP : 'and' | '&' | '*' XOR_OP : 'xor' | '^' OR_OP : 'or' | '|' | '+' UNARY_OP : '~' | '!' permission : PERMISSION_PREFIX IDENTIFIER primary_expr : permission | '(' expr_list ')' unary_expr : primary_expr | UNARY_OP primary_expr logical_and_expr : unary_expr | logical_and_expr AND_OP unary_expr logical_xor_expr : logical_and_expr | logical_or_expr XOR_OP logical_and_expr logical_or_expr : logical_xor_expr | logical_or_expr OR_OP logical_xor_expr expr_list : logical_or_expr | expr_list ';' logical_or_expr | expr_list ',' logical_or_expr Access Control Listen werden mit der statischen Methode AccessControlList.parse() eingelesen. Der Parser verwendet wiederum die statische Methode PermissionFactory.parse() um die einzelnen Permissions zu lesen. Der Anwendungsentwickler kann über die PermissionFactory eigene von Permission abgeleitete Klassen registrieren und so den Sprachumfang der ACL erweitern. |
![]() |
|||||||||||||
printListButton | ACL | Gibt an, ob eine Schaltfläche zum Drucken angezeigt werden soll. Über die Angabe einer Access Control List kann die Schaltfläche auf bestimmte Benutzer beschränkt werden. |
![]() |
|||||||||||||
property | String |
Gibt den Namen des Properties an, über welchen auf
die Java-Bean zugegriffen werden soll. Dies ist in
der Regel nur dann notwendig, wenn die Java-Bean
mit einer Struts Formular Bean assoziiert ist.
Anmerkung: Es muss ein gültiger Java Bezeichner angegeben werden. |
![]() |
|||||||||||||
refreshButton | ACL | Gibt an, ob eine Schaltfläche zum Aktualisieren der Elemente angezeigt werden soll. |
![]() |
|||||||||||||
rows | Integer |
Mit diesem Attribut wird die Anzahl der maximal gleichzeitig
dargestellten Zeilen angegeben. Wenn die Gesamtzahl der
verfügbaren Zeilen des Datenmodells grösser ist als die Anzahl
der angezeigten Zeilen, dann werden automatisch Schaltflächen
zum seitenweise Blättern erzeugt.
Wenn dieses Attribut nicht angegeben wird, dann werden immer alle Zeilen angezeigt |
![]() |
|||||||||||||
runat | RunAt |
Dieses Attribut gibt an, ob für das Kontrollelement
JavaScript verwendet werden soll, oder ob das Kontrollelement
ausschließlich mit Server Roundtrips arbeiten soll.
|
![]() |
|||||||||||||
scope | HttpScope |
Dieses Attribut gibt den Scope an, in welchem die Java-Bean
mit den eigentlichen Anzeigedaten zu finden ist.
|
![]() |
|||||||||||||
scrollHeight![]() | String |
Gibt die Höhe des scrollbaren Bereiches des Kontrollelementes an.
Wenn das Element mehr Platz benötigt, dann werden vertikale Scroll
Leisten angezeigt.
Hinweis: Wenn das scrollHeight-Attribut angegeben wird, muss zudem für jedes column- und columngroup-Tag die Breite angegeben werden! Anmerkung: Es ist ein HTML Größenangabe gefordert (in Pixeln, Punk etc.) |
![]() |
|||||||||||||
select | SelectMode |
Gibt den Selektionsmodus der Liste an. Dieser wird
nur dann verwendet, wenn auch eine Check-Spalte
angezeigt werden soll.
|
![]() |
|||||||||||||
shadow | Boolean |
Gibt an ob das Kontrollelement mit einem Schatten hinterlegt
werden soll.
Diese Funktion ist nur bei bestimmten Painterfactories verfügbar |
![]() |
|||||||||||||
showHeader | Boolean | Über dieses Attribut kann die Kopfzeile mit den Spaltenüberschriften angezeigt oder verborgen werden. |
![]() |
|||||||||||||
style | String |
Über dieses Attribut kann direkt ein HTML-style
Attribut angegeben werden.
Anmerkung: Siehe HTML Dokumentation für das Attribut style. |
![]() |
|||||||||||||
styleClass | String |
Über dieses Attribut kann direkt ein HTML-class
Attribut angegeben werden.
Anmerkung: Siehe HTML Dokumentation für das Attribut class. |
![]() |
|||||||||||||
styleId | String |
Über dieses Attribut kann direkt ein HTML-id
Attribut angegeben werden.
Anmerkung: Siehe HTML Dokumentation für das Attribut id. |
![]() |
|||||||||||||
summary | String | Gibt einen nicht sichtbaren Summary zu dem Kontrollelement auf der HTML Seite aus. Diese Information kann von speziellen Anzeigegeräten dargestellt werden - zum Beispiel als Sprachausgabe oder Braille Schrift. |
![]() |
|||||||||||||
tabindex | Integer | Legt den Tabulator Index für dieses Element fest. |
![]() |
|||||||||||||
taborientation | OrientationType |
Mit diesem Attribut wird die Tabulator Reihenfolge für
das mehrspaltige Kontrollelement festgelegt. Der Tabulator
kann damit über die Zeilen oder die Spalten laufen.
|
![]() |
|||||||||||||
title | String |
Die Hauptüberschrift des Listenelementes. Die
Zeichenkette wird vor der Ausgabe HTML-codiert
Beispiel: aus ä wird ä |
![]() |
|||||||||||||
transaction | Boolean |
Mit diesem Flag wird angegeben ob ein Transaction Token
(siehe Struts Token Dokumentation) an alle
Hyperlinks des Kontrollelementes angehängt werden soll.
Mit dem Transaction Token können Form Re-submissions (mehrfaches Absenden eines HTML Formulars) erkannt werden.
Funktionsweise: Das Transaction Token is ein "Stempel"
mit welchem die Applikation jede generierte HTML Seite stempelt
(es wird ein hidden Field bzw. zusätzliche URL Parameter
für alle Hyperlinks erzeugt).
Bei einem Server Request kann der vom Browser zurückgeliefert
Stempel mit dem in der Session gespeicherten Wert verglichen
werden. Wenn der Wert übereinstimmt, dann passt die Seite zum
aktuellen Applikations Zustand. |
![]() |
|||||||||||||
width | String |
Setzt die Breite des Kontrollelmentes. Die Breite kann
absolut oder prozentual angegeben werden.
Siehe HTML-Dokumentation |
![]() |
Ereignis | Beschreibung |
CellClick |
public void control_onCellClick( ControlActionContext ctx, String column, String key) throws Exception |
Dieses Event wird ausgelößt, wenn der Anwender eine Schaltfläche oder Image in einer Button,Image oder Link-Spalte betätigt. | |
Liegt in der Verantwortung der Applikation. | |
Check |
public void control_onCheck( ControlActionContext ctx, String key, SelectMode mode, boolean checked) throws Exception |
Dieses Event wird ausgelößt, wenn der Anwender eine Checkbox in einer Check-Spalte betätigt. | |
Liegt in der Verantwortung der Applikation. Wenn die selektierte Row Bean das Checkable Interface implementiert, dann wird automatisch die Checkable.setCheckState() Methode aufgerufen. |
|
CheckAll |
public void control_onCheckAll( ControlActionContext ctx, SelectMode mode, boolean checked) throws Exception |
Dieses Event wird ausgelößt, wenn der Anwender das "Check All" Symbol im Spalten Header einer Check oder CheckBox-Spalte betätigt. | |
Liegt in der Verantwortung der Applikation. Bei einer Check Spalte wird für alle Row Beans des Datenmodells die Checkable.setCheckState() Methode aufgerufen, sofern die einzelne Row Bean das Checkable Interface implementiert. |
|
Create |
public void control_onCreate( ControlActionContext ctx) throws Exception |
Delete |
public void control_onDelete( ControlActionContext ctx, String key) throws Exception |
Drilldown |
public void control_onDrilldown( ControlActionContext ctx, String key) throws Exception |
Dieses Event wird durch einen Klick auf Zelle in einer Drilldown Spalte ausgelößt. | |
Edit |
public void control_onEdit( ControlActionContext ctx, String key) throws Exception |
ExportList |
public void control_onExportList( ControlActionContext ctx) throws Exception |
Page |
public void control_onPage( ControlActionContext ctx, int page) throws Exception |
PrintList |
public void control_onPrintList( ControlActionContext ctx) throws Exception |
Refresh |
public void control_onRefresh( ControlActionContext ctx) throws Exception |
Select |
public void control_onSelect( ControlActionContext ctx, String key) throws Exception |
Sort |
public void control_onSort( ControlActionContext ctx, String column, SortOrder direction) throws Exception |