In diesem Abschnitt wird die Model-View-Controller-Verwaltungslogik (MVC) kurz beschrieben und anschließend
erläutert, wie Rich-UI die MVC-Lösung für die Unterstützung von Validierung und Formatierung nutzt.
MVC
Moderne Datenverarbeitungssysteme trennen die
Anzeige ('View')
vom
Modell ('Model'). Diese Begriffe werden auf verschiedene Arten definiert:
- Als Anzeige ('View') werden die Benutzerschnittstelle oder die Logik, die die Benutzerschnittstelle
unterstützt, oder auch die Geschäftsdaten in der Benutzerschnittstelle bezeichnet.
- Als Modell ('Model') werden eine Datenbank (oder ein anderer Datenspeicher) oder die
Logik, die auf eine Datenbank zugreift, oder die Daten, die an eine Datenbank gesendet bzw.
aus einer Datenbank abgerufen werden, bezeichnet.
Als Controller wird die Logik
bezeichnet, die die Übertragung von Daten zwischen der Benutzerschnittstelle und der Datenbankzugriffslogik
steuert.
In vielen Fällen bezieht sich das Akronym MVC auf eine mehrere Plattformen übergreifende Verarbeitung.
So könnte zum Beispiel eine Rich-UI-Anwendung auf einer
Windows-Plattform als Anzeige (mit eingeschlossenem Controller)
bezeichnet werden, während ein Service, der auf eine Datenbank zugreift, als Modell betrachtet
werden könnte.
In der Rich-UI-Anwendung selbst lässt sich jedoch auch eine Trennung der Anzeige vom
Modell vorstellen. In diesem Fall haben die Bezeichnungen die folgende Bedeutung:
- Die Anzeige ist ein Widget in der Benutzerschnittstelle. Daten, die in dieses Widget eingefügt
werden, müssen geprüft werden, bevor sie in der weiteren Verarbeitung verwendet werden können. Anwendungsdaten,
die durch das Widget angezeigt werden sollen, müssen vor dem Anzeigen formatiert werden.
- Das Modell ist ein internes Datenfeld der Anwendung.
Eine EGL-Definition, der
Controller, gibt Ihnen die Möglichkeit, eine bestimmte Anzeige, d. h. ein bestimmtes Widget, an ein
bestimmtes Modell zu binden. Der Controller überwacht außerdem Validierungen und Formatierungsregeln,
wie später erläutert wird.
Sie können auch ein Formular definieren, das eine Gruppe von Anzeigefeldern
und die zugehörigen Controller angibt. In einem solchen Formular können Sie die Fehlernachrichten anzeigen,
die sich aus Validierungen und der Formatierung ergeben.
In den nachfolgenden Abschnitten wird der Controller
und die Arbeit mit dem Controller beschrieben. Detaillierte Informationen zur Erstellung von Formularen, bei
der die hier beschriebenen Mechanismen verwendet werden, finden Sie im Abschnitt “Formularverarbeitung mit Rich-UI”.
Controller in Rich-UI
Betrachten Sie die folgenden Deklarationen:
nameField TextField;
name String {inputRequired=yes,
validationPropertiesLibrary=myLibrary,
inputRequiredMsgKey="requiredMessage"};
Die Deklaration von
name hat die folgenden Eigenschaften:
- inputRequired: Diese Eigenschaft stellt sicher, dass der Benutzer eine Eingabe
in das Widget (eine Anzeige) macht, das dem Datenfeld (einem Modell) zugeordnet ist.
- validationPropertiesLibrary: Diese Eigenschaft gibt die Bibliothek
(Stereotyp RUIPropertiesLibrary) an, die Deklarationen für die Verwendung in
Nachrichten und anderem Text enthält. Wenn Sie diese Eigenschaft nicht einschließen, greift die EGL-Laufzeit
auf Standardnachrichten zu.
Detaillierte Informationen zur Anpassung von Validierungsnachrichten in Rich-UI finden Sie in
“Verwendung von Eigenschaftendateien für anzeigbaren Text”.
- inputRequiredMsgKey: Diese Eigenschaft gibt eine angepasste
Validierungsnachricht an.
Das folgende Beispiel zeigt eine Deklaration für einen
Rich-UI-Controller:
nameController Controller
{ @MVC
{ model=name, view=nameField },
validators = [myValidationFunction01, myValidationFunction02]
};
Die Deklaration bindet ein bestimmtes Modell, hier das Feld name,
an eine bestimmte Anzeige, hier das Widget nameField. Im Allgemeinen kann nur ein Widget
eines speziellen Typs eine Controlleranzeige sein, wie dies im Abschnitt “Widgets, die als Controlleranzeigen
verwendet werden können” erläutert wird.
Sie steuern die Übertragung von Daten zwischen dem Modell und
der Anzeige wie folgt:
- Zur Übertragung von Daten von der Anzeige an das Modell validieren Sie die Daten und schreiben die
validierten Daten anschließend fest. In den meisten Fällen werden durch den Festschreibungsschritt (Commit-Operation)
Formatierungszeichen wie zum Beispiel Währungssymbole entfernt.
- Zur Übertragung von Daten aus dem Modell in die Anzeige, publizieren Sie die Daten.
In den meisten Fällen werden die Daten durch den Publizierungsschritt für die
Anzeige formatiert.
Im vorliegenden Beispiel listet die Controllerdeklaration auch
eine Gruppe von
Validatoren auf, bei denen es sich um von Ihnen geschriebene Funktionen handelt,
die die Eingaben in der Reihenfolge der Funktionen nacheinander validieren. Jeder Validator basiert
auf dem folgenden Stellvertreter:
Delegate
MVCValidatorFunction(input String in) returns(String?)
end
Die Eingabe für einen Validator wird als gültig betrachtet, wenn die Funktion
eine leere Zeichenfolge oder 'null' zurückgibt, jedoch nicht, wenn der Validator eine Zeichenfolge
mit Inhalt zurückgibt. Eine solche Zeichenfolge wird als Fehlernachricht eingestuft. Wenn eine Funktion eine
Fehlernachricht zurückgibt, werden die nachfolgenden Funktionen nicht ausgeführt.
In den meisten Fällen
schreiben Sie Daten aus der Anzeige im Modell erst nach einer Validierung der Daten fest. Das folgende
Beispiel zeigt die Syntax zum Festschreiben ('Commit') der Benutzereingabe aus dem Feld
nameField im Feld
name:
if (nameController.isValid())
nameController.commit();
end
Benutzereingabe validieren
Eine
Validierung auf
Controllerebene ist eine Werteprüfung, die durch den Aufruf einer von zwei controllerspezifischen
Funktionen bewirkt wird:
- Die Funktion isValid wird immer aufgerufen, wenn der Benutzer den Fokus vom
Widget entfernt. Außerdem kann Ihr Code eine Funktion aufrufen, die Fehlernachrichten anzeigt, die sich
aus einer fehlgeschlagenen Validierung ergeben.
Eine Fehlernachricht wird nur entfernt, wenn eine erfolgreiche Validierung erfolgt, nicht
wenn der Benutzer den Fokus zurück auf das Widget bewegt.
- Die Funktion validate wird durch die Funktion
isValid aufgerufen und speichert eine Nachricht für den
ersten gefundenen Fehler, zeigt jedoch selbst die Nachricht nicht an.
Sie können auf die gespeicherte Fehlernachricht zugreifen, indem Sie die controllerspezifische Funktion
getErrorMessage aufrufen, die keine Parameter hat und einen Wert vom Typ STRING zurückgibt.
Ihr Code kann zwecks größerer Kontrolle die Funktion validate anstelle der
Funktion isValid aufrufen.
Ihr Code könnte zum Beispiel die Funktion validate aufrufen, um
zu testen, ob eine Hilfeseite angezeigt werden soll, oder um eine andere Aktion auszuführen,
wenn ein Fehler gefunden wird. Dabei können Sie die Anzeige einer Fehlernachricht vermeiden,
die von der Funktion zurückgegeben wird.
Eine zugehörige controllerspezifische Funktion
ist isValidStateInitialized, die angibt, ob eine controllerspezifische
Validierungsfunktion (sei es isValid oder validate)
mindestens einmal in der aktuellen Ausführung der Rich-UI-Anwendung ausgeführt wurde.
Die Funktion isValidStateInitialized hat keine Parameter und gibt einen
booleschen Wert zurück.
Im Übrigen unterstützen verschiedene Typen von EGL-Dojo-Widgets eine
Validierung auf Anzeigeebene, wobei es sich um eine Werteprüfung handelt, die nach jedem
Tastenanschlag des Benutzers erfolgt. Die Validierung auf Anzeigeebene ist in den folgenden Typen von Widgets
verfügbar:
- DojoCurrencyTextBox
- DojoDateTextBox
- DojoTextField
- DojoTimeTextBox
Für Widgets dieser Typen gelten die folgenden Regeln:
Wenn die Funktion
validate durch Ihren Code oder durch die Funktion
isValid
aufgerufen wird, führt sie die folgenden Aktionen aus:
- Sie führt die Funktion aus, die durch die Eigenschaft retrieveViewHelper (im Beispiel nicht gezeigt)
angegeben wird, die wiederum die Funktion angibt, die den Widgetinhalt abruft. Die Funktion hat keine
Parameter und gibt eine Zeichenfolge zurück.
Sie könnten diese Funktion verwenden, um die Eingabe in bestimmter
Weise zu konvertieren. In den meisten Fällen ist die Angabe der Eigenschaft
retrieveViewHelper allerdings nicht erforderlich. Wenn diese Eigenschaft nicht vorhanden ist, ist der Widgetinhalt als Zeichenfolge für eine nachfolgende
Verarbeitung verfügbar.
- Sie führt die Funktionen aus, die von der Eigenschaft unformatters (im Beispiel
nicht gezeigt) angegeben werden, die eine Feldgruppe von Funktionen angibt.
Jede Funktion hat einen Zeichenfolgeparameter (STRING in) und gibt eine Zeichenfolge zurück. Sie könnten
diese Funktionen verwenden, um Formatierungszeichen aus der Eingabe zu entfernen. Die zuerst aufgeführte
Funktion akzeptiert die Zeichenfolge, die von der Funktion retrieveViewHelper
zurückgegeben wird. Jede der nachfolgend aufgeführten Funktionen akzeptiert die Zeichenfolge, die
von der vorherigen Funktion zurückgegeben wird. Es ist in manchen Fällen nicht erforderlich, die
Eigenschaft unformatters anzugeben.
- Sie entfernt die Formatierungszeichen aus den Benutzereingaben entsprechend den Formatierungseigenschaften (sofern vorhanden),
die Sie im Quellcode angegeben haben. Ein Beispiel für ein Formatierungszeichen ist das Währungssymbol, das
mit der Eigenschaft currency zugeordnet wird.
Ein weiteres Beispiel sind die Trennzeichen, die durch die Eigenschaft dateFormat angegeben werden.
- Sie gibt die Steuerung an den Benutzer zurück, wenn ein Validierungsfehler in Bezug auf einen Datentyp auftritt,
zum Beispiel wenn der Benutzer einen Buchstaben eingegeben hat, während das Modell ein numerisches Feld ist.
- Sie führt elementare Validierungen aus, wie dies durch EGL-Eigenschaften angegeben wird, die im
Modell und nicht in der Anzeige festgelegt sind.
In einem späteren Abschnitt werden die verfügbaren Eigenschaften aufgeführt, zu denen
inputRequired gehört, wie im Beispiel gezeigt. (Diese Eigenschaft stellt sicher,
dass der Benutzer eine Eingabe für jedes Widget macht, das diesem Datenfeld zugeordnet ist.)
Die elementaren
Validierungen können die folgenden Ergebnisse haben:
- Sie führt die Validatoren in der Reihenfolge aus, in der sie in der Controllerfeldgruppe
validators angegeben sind.
Jeder Validator akzeptiert die Eingabezeichenfolge (STRING in) ohne Formatierungszeichen wie zum Beispiel
ein Währungssymbol, und jeder Validator gibt eine Zeichenfolge oder 'null' zurück. (Der Rückgabewert hat den Typ STRING.)
Wenn der Validator 'null' oder eine leere Zeichenfolge zurückgibt, betrachtet die EGL-Laufzeit die Validierung
als erfolgreich. Die folgenden Punkte sind jedoch zu beachten, wenn der Validator einen anderen Wert
zurückgibt, zum Beispiel einen Wert, der aus einer Eigenschaftendatei abgerufen wurde, wie im Abschnitt
“Verwendung von Eigenschaftendateien für anzeigbaren Text” beschrieben:
- Die EGL-Laufzeit betrachtet die Validierung als fehlgeschlagen.
- Die Steuerung wird unverzüglich an den Benutzer zurückgegeben; in diesem Fall werden die nachfolgenden
Validatoren nicht ausgeführt.
- Die zurückgegebene Zeichenfolge wird als Fehlernachricht gespeichert. Details, die speziell für die EGL-Dojo-Widgets
gelten, die eine Validierung auf Anzeigeebene unterstützen, finden Sie in
Fehlernachricht der Controllerebene in einem EGL-Dojo-Widget anzeigen.
Sie können einen Validator schreiben,
auf den mehrere Controller zugreifen. Diese Wiederverwendung ist möglich, weil Sie jetzt den Controller
angeben können, wie im folgenden Beispiel gezeigt:
function commonValidator(input string in) returns(string?)
currController Controller = MVCLib.getCurrentContext();
viewId string = currController.view.id;
end
Und schließlich akzeptiert die Eigenschaft
publishMessageHelper eine Funktion, die nur einen Parameter
hat, der durch IN modifiziert wird, und die keinen Rückgabewert hat. Diese Funktion wird aufgerufen, wenn das
Widget den Fokus erhält. Die Eingabe für diese Funktion ist die letzte Nachricht, die gespeichert wurde, als
das Widget den Fokus verlor.
Anzeige ungültiger Eingaben ändern und Fehlernachrichten behandeln
Standardmäßig wird
ein Widget mit gültigem Inhalt mit einem Stil angezeigt, der in einer Cascading Style Sheet-Klasse (CSS-Klasse)
angegeben ist, wie insbesondere zum Beispiel bei einer ursprünglichen Klasse wie 'EglRuiTextField' und der folgenden
sekundären Klasse: FormErrorEditor. Ein Web-Designer in Ihrem Unternehmen wird das Style-Sheet wahrscheinlich
für eine optimale Wirkung einrichten.
Sie können eine andere Gruppe von CSS-Klassen (oder eine
andere CSS-ID) als Antwort auf einen Validierungsfehler angeben oder auch einen anderen Aspekt der
angezeigten Ausgabe ändern. Sie können zum Beispiel CSS-Klassen einer Bezeichnung ('Label') zuordnen,
wie dies (standardmäßig) möglich ist, wenn Sie ein Validierungsformular verwenden. (Details finden Sie in
“Formularverarbeitung mit Rich-UI”.)
Die folgende Prozedur erläutert, wie die angezeigte
Ausgabe nach der Validierung auf Controllerebene geändert wird:
In derselben Funktion können Sie auf Fehlernachrichten der Controllerebene
zugreifen, indem Sie die controllerspezifische Funktion getErrorMessage aufrufen.
Wie zuvor erwähnt, hat diese Funktion keine Parameter und gibt einen Wert vom Typ STRING zurück.
Fehlernachricht der Controllerebene in einem EGL-Dojo-Widget anzeigen
Sie haben
Auswahlmöglichkeiten, zum Beispiel wo die Fehlernachricht platziert werden soll, die aus einer
Validierung auf Controllerebene resultiert:
- In Bezug auf die EGL-Dojo-Widgets, die die Validierung auf Anzeigeebene unterstützen, können Sie die
Nachricht in der QuickInfo platzieren, in der jede Nachricht aus einer Validierung auf Anzeigeebene
platziert wird. In diesem Fall zeigt das Widget unverzüglich einen Fehlerindikator als Antwort
auf den Fehler an, während die Nachricht der Controllerebene erst angezeigt wird, wenn das Widget
den Fokus erhält. (Die frühere Beschreibung der Validierung auf Anzeigeebene finden Sie unter
Benutzereingabe validieren.)
Wenn sich das Widget in einem Formular befindet, können Sie die Anzeige der Fehlernachricht der Controllerebene
in einer Fehlerbezeichnung vermeiden, indem Sie die Fehlerbezeichnung entfernen.
- In Bezug auf ein beliebiges EGL-Widget oder EGL-Dojo-Widget können Sie die Nachricht in einer Fehlerbezeichnung
platzieren, wie dies in “Formularverarbeitung mit Rich-UI” beschrieben ist.
In diesem Fall zeigt das Widget unverzüglich einen Fehlerindikator als Antwort auf den Fehler an und
die Nachricht wird angezeigt, sobald der Fehler auftritt.
Wenn Sie die Nachricht in eine Fehlerbezeichnung einfügen und ein EGL-Dojo-Widget verwenden, das
die Validierung auf Anzeigeebene unterstützt, können Sie vermeiden, dass die Nachricht in der QuickInfo
angezeigt wird. Zur Vermeidung der doppelten Anzeigen setzen Sie die controllerspezifische Eigenschaft
publishMessageHelper auf 'null' oder ordnen dieser Eigenschaft eine eigene Funktion
zu. Wenn Sie die Eigenschaft nicht festlegen oder ihr keine eigene Funktion zuordnen, wird eine interne EGL-Funktion
aufgerufen, um die Fehlernachricht an die QuickInfo zu leiten.
Wie in der Dokumentation
zu den EGL-Dojo-Widgets, die die Validierung auf Anzeigeebene unterstützen, beschrieben, können Sie einen
Fehlerindikator festlegen, indem Sie die widgetspezifische Funktion
showErrorIndicator aufrufen, und Sie können eine Fehlernachricht anzeigen, indem
Sie die widgetspezifische Funktion showErrorMessage aufrufen.
Validierte Eingaben festschreiben
Wenn Sie die controllerspezifische Funktion
commit ausführen, werden Daten aus der Anzeige in das Modell übertragen. Während dieses Prozesses
werden verschiedene Funktionen aufgerufen, wie dies durch eine Reihe von Controllereigenschaften festgelegt
wird, die viele Optionen bieten. Die folgenden Eigenschaften sind verfügbar:
- Die Eigenschaft retrieveViewHelper gibt die Funktion an, die
den Widgetinhalt abruft. Die Funktion hat keine
Parameter und gibt eine Zeichenfolge zurück. Sie könnten diese Funktion verwenden, um die Eingabe in bestimmter
Weise zu konvertieren. In den meisten Fällen ist die Angabe der Eigenschaft
retrieveViewHelper allerdings nicht erforderlich. Wenn diese Eigenschaft nicht vorhanden ist, ist der Widgetinhalt als Zeichenfolge für eine nachfolgende
Verarbeitung verfügbar.
- Die Eigenschaft unformatters gibt eine Feldgruppe von
Funktionen an. Jede Funktion hat einen Zeichenfolgeparameter (STRING in) und gibt eine Zeichenfolge zurück. Sie könnten
diese Funktionen verwenden, um Formatierungszeichen aus der Eingabe zu entfernen. Die zuerst aufgeführte
Funktion akzeptiert die Zeichenfolge, die von der Funktion retrieveViewHelper
zurückgegeben wird. Jede der nachfolgend aufgeführten Funktionen akzeptiert die Zeichenfolge, die
von der vorherigen Funktion zurückgegeben wird. Es ist in manchen Fällen nicht erforderlich, die
Eigenschaft unformatters anzugeben.
- Formatierungszeichen werden aus den Benutzereingaben entsprechend den Formatierungseigenschaften (sofern
vorhanden) entfernt, die Sie im Quellcode angegeben haben. Ein Beispiel für ein Formatierungszeichen ist das Währungssymbol, das
mit der Eigenschaft currency zugeordnet wird.
Ein weiteres Beispiel sind die Trennzeichen, die durch die Eigenschaft dateFormat angegeben werden.
- Die Eigenschaft commitHelper gibt die Funktion an, die dem Modell einen Wert
zuordnet. Die Funktion akzeptiert einen Zeichenfolgeparameter und keinen Rückgabewert. Sie müssen diese Eigenschaft
möglicherweise nicht festlegen. Wenn Sie nicht vorhanden ist, empfängt das Modell die Zeichenfolge, die von
einer früheren Funktion (sofern vorhanden) bereitgestellt wurde, und die keine Formatierungszeichen mehr
enthält.
Modelldaten publizieren
Wenn Sie die controllerspezifische Funktion
publish ausführen, werden Daten aus dem Modell in die Anzeige übertragen. Während dieses Prozesses
werden verschiedene Funktionen aufgerufen, wie dies durch eine Reihe von Controllereigenschaften festgelegt
wird, die viele Optionen bieten. Die folgenden Eigenschaften sind verfügbar:
- Die Eigenschaft retrieveModelHelper gibt die Funktion an, die
den Dateninhalt abruft. Die Funktion hat keine
Parameter und gibt eine Zeichenfolge zurück. Sie könnten diese Funktion verwenden, um die Ausgabe in bestimmter
Weise zu konvertieren. In den meisten Fällen ist die Angabe der Eigenschaft
retrieveModelHelper allerdings nicht erforderlich. Wenn diese Eigenschaft nicht
vorhanden ist, wird der Modellinhalt als Zeichenfolge für eine nachfolgende Verarbeitung verfügbar gemacht.
- Formatierungszeichen werden dem Dateninhalt entsprechend den Formatierungseigenschaften (sofern
vorhanden) hinzugefügt, die Sie im Quellcode angegeben haben. Ein Beispiel für ein Formatierungszeichen ist das Währungssymbol, das
mit der Eigenschaft currency zugeordnet wird.
Ein weiteres Beispiel sind die Trennzeichen, die durch die Eigenschaft dateFormat angegeben werden.
- Die Eigenschaft formatters gibt eine Feldgruppe von
Funktionen an. Jede Funktion hat einen Zeichenfolgeparameter (STRING in) und gibt eine Zeichenfolge zurück. Sie könnten
diese Funktionen zum Formatieren der Ausgabe verwenden. Die zuerst aufgeführte Funktion akzeptiert die
Zeichenfolge, die von der Funktion retrieveModelHelper zurückgegeben wurde, mit
allen Formatierungszeichen, die in Schritt 2 hinzugefügt wurden. Jede der nachfolgend aufgeführten
Funktionen akzeptiert die Zeichenfolge, die von der vorherigen Funktion zurückgegeben wird.
Es ist in manchen Fällen nicht erforderlich, die Eigenschaft formatters anzugeben.
- Die Eigenschaft publishHelper gibt die Funktion an, die der Anzeige einen Wert
zuordnet. Die Funktion hat einen Zeichenfolgeparameter (STRING in) und keinen Rückgabewert. Sie müssen diese Eigenschaft
möglicherweise nicht festlegen. Wenn Sie nicht vorhanden ist, empfängt die Anzeige die Zeichenfolge, die von
einer früheren Funktion (sofern vorhanden) bereitgestellt wurde, und die Formatierungszeichen enthält.
Validierungs- und Formatierungseigenschaften
Alle Eigenschaften auf Feldebene, die
in Rich-UI verwendet werden, werden im Abschnitt “Eigenschaften von Formularfeldern” beschrieben. Im aktuellen Abschnitt
werden die Eigenschaften nur aufgelistet, die jeweils durch einen Buchstaben kategorisiert werden:
- F bezeichnet die Formatierung. Eine Eigenschaft in dieser Kategorie entfernt die Formatierungszeichen
während des Festschreibens und fügt während des Publizierens Formatierungszeichen hinzu.
Jede dieser Eigenschaften kann die Anzeige einer Fehlernachricht zur Folge haben. Dies ist zum Beispiel der
Fall, wenn ein Eingabedatum erheblich vom erforderlichen Datumsformat abweicht oder wenn ein anderer
ganzzahliger Wert als 0 oder 1 in ein Feld mit der Eigenschaft 'isBoolean' eingegeben wurde.
- V bezeichnet die Eingabevalidierung.
In der folgenden Liste sind alle Eigenschaften aufgeführt:
- currency (F)
- currencySymbol (F)
- dateFormat (F)
- fillCharacter (F)
- inputRequired (V)
- inputRequiredMsgKey (V)
- isBoolean (F)
- isDecimalDigit (V)
- isHexDigit (V)
- lowercase (F)
- minimumInput (V)
- minimumInputMsgKey (V)
- numericSeparator (F)
- sign (F)
- timeFormat (F)
- timestampFormat (F)
- typeChkMsgKey (V)
- uppercase (F)
- validValues (V)
- validValuesMsgKey (V)
- zeroFormat (F)
Zu den folgenden Eigenschaften finden Sie weitere Beschreibungen
im Abschnitt “Verwendung von Eigenschaftendateien für anzeigbaren Text”:
- inputRequiredMsgKey (V)
- minimumInputMsgKey (V)
- typeChkMsgKey (V)
- validValuesMsgKey (V)
Sie können die Validierungs- und Formatierungseigenschaften für
Datenelementdefinitionen, für Variablen und für Datensatzfelder ('Record') angeben. Sie sind für einen bestimmten
Rich-UI-Controller jedoch nur wirksam, wenn Sie die Eigenschaft @MVC bei
der Deklaration des Controllers angeben.