Die Common-Controls Tag Bibliothek

<ctrl:panelitem>

Mit diesem Tag werden die eigentlichen Einträge eines Panels definiert.
Das <panelitem>-Tag muss immer von einem <panelcontent>-Tag umschlossen werden.
../images/images/panelitem.gif

Tag class: PanelItemTag
 

[ Syntax ]

Standard Syntax
<ctrl:panelitem
title = "String"
[ action = "String" ]
[ detail = "String" ]
[ filter = "boolean" ]
[ locale = "String" ]
[ onclick = "String" ]
[ oncontextmenu = "String" ]
[ permission = "ACL" ]
[ target = "String" ]
[ tooltip = "String" ]
/>
 

[ Attribute ]

AttributTypBeschreibungPflichtRTExp
actionString 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.

 
detailString Ein zusätzlicher Beschreibungstext, welcher unter dem Titel ausgegeben wird.

Die Zeichenkette wird vor der Ausgabe HTML-codiert

 
filterboolean Dieses Flag gibt an ob eine HTML-Konvertierung der title und tooltip Parameter durchgeführt werden soll.  
localeString Weist das Kontrollelement an alle angegebenen Zeichenkettenliterale als Schlüssel für Textressourcen zu interpretieren.

Die folgenden Werte sind möglich:

  • "true" Die Lokalisierung ist aktiv und es wird die von Struts vergebene Ländereinstellung des angemeldenten Benutzers verwendet (wie in der HTTP Session unter dem Schlüssel org.apache.struts.action.LOCALE abgelegt).
  • "false" Die Lokalisierung ist nicht aktiviert. Alle Zeichenkettenliterale werden wie angegeben in die HTML Seite geschrieben.
  • ISO Code Die Lokalisierung ist aktiv und es wird die angegebene Sprache verwendet.

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.

 
onclickString Fires when the user clicks the left mouse button on the object.

Anmerkung: JavaScript Code

 
oncontextmenuString Fires when the user clicks the right mouse button in the client area, opening the context menu.

Anmerkung: JavaScript Code

 
permissionACL 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:

Literal
true|false -> StaticPermission
Rolle
#rollenname -> RoleBasedPermission
Funktion
$funktionsname -> FunctionBasedPermission

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.

 
targetString Über dieses Attribut kann das HTML-target Attribut des Elementes angegeben werden.  
titleString Der Titel des Items. Er wird meis als Hyperlink zum Aufruf der angegebenen Action verwendet.

Die Zeichenkette wird vor der Ausgabe HTML-codiert

tooltipString Tooltip Text welcher in einem Popup Fenster angezeigt wird, wenn der Benutzer die Maus über den Titel bewegt.

Die Zeichenkette wird vor der Ausgabe HTML-codiert

 

[ Beispiel ]

Erzeugt eine Panel mit einer Miscellaneous Gruppe


<%@ taglib uri="http://www.common-controls.com/cc/tags-ctrl"    prefix="ctrl" %>

<ctrl:panel id="myPanel" width="170">
    <ctrl:panelcontent title="Miscellaneous">
        <ctrl:panelitem  action="/userprofile"  title="User Profile"     detail="Edit your User Profile"/>
        <ctrl:panelitem  action="/changepwd"    title="Change Password"  detail="Change your password"/>
    </ctrl:panelcontent>
</ctrl:panel>