Sie können ein benutzerdefiniertes Feld in ein erforderliches Feld umwandeln, indem Sie die Datei validation.xml bearbeiten. Sie müssen eine Definition der maximalen Länge für alle benutzerdefinierten Felder deklarieren.
Informationen zu diesem Vorgang
Anmerkung: Beachten Sie beim Durchführen eines Upgrades auf ein neueres IBM® Connections-Release,
dass benutzerdefinierte Felder nicht in den Migrationstools
für die standardmäßigen Connections-Konfigurationsdateien enthalten sind. Auch die Datei
validation.xml
wird nicht automatisch beim Durchführen eines Upgrades von einem früheren
Connections-Release migriert. Diese Datei ist für das Struts-Validierungsframework
und beim Connections-Start erforderlich. Um sicherzustellen, dass Ihre
benutzerdefinierten Felder und Dateien nach einem Release-Upgrade verwendet werden können, lesen Sie die Informationen in den Themen
Anpassungen speichern und
Tasks nach der Migration.
IBM Connections basiert auf Struts, sodass Sie
das Struts-Validierungsframework für die Validierung von Formulardaten nutzen können. Die Dateien validation.xml und
validation-rules.xml sind Bestandteil des
Struts-Validierungsframeworks. In der Datei validation.xml werden
die Gültigkeitstypen definiert, die für Formularfelder gelten. In der Datei
validation-rules.xml werden eine Reihe von
Standard-Validierungsroutinen definiert. Validierungsroutinen, wie z. B. required und maximum length, sind im Validierungsframework enthalten.
Alle benutzerdefinierten Erweiterungsattribute müssen
über eine Definition der maximalen Länge verfügen, um sicherzustellen, dass die Werte innerhalb der Grenzwerte der
Datenbank liegen.
Vorgehensweise
Gehen
Sie wie folgt vor, um ein benutzerdefiniertes Erweiterungsfeld als erforderliches Feld
festzulegen.
- Speichern Sie eine Kopie der Datei was_profile_root\installedApps\cell_name\profiles.ear\lc.profiles.app.war\WEB-INF\validation.xml.
- Öffnen Sie die Datei in einem Texteditor und geben Sie Ihre
Validierungsanforderungen anhand der Informationen in der folgenden Tabelle an.
Tabelle 1. Validatorattribute| Attribut |
Rolle |
| property |
Der Name des Felds, das erforderlich werden soll. Sie sehen den Feldnamen, wenn Sie die Quelle der bereitgestellten Seite anzeigen. |
| depends |
Der Name der auszuführenden Validierung. |
| msg name |
Setzt die Standard-Fehlernachricht für erforderliche
Felder außer Kraft. Dieser Wert entspricht dem Namensattribut des Prüfprogramms. |
| msg key |
Die Nachricht, die bei fehlgeschlagener Validierung angezeigt
werden soll. Der Schlüssel in der Eigenschaftendatei enthält die Fehlernachricht, die bei
fehlgeschlagener Validierung angezeigt werden soll. Sie müssen den Schlüssel zur
Eigenschaftendatei hinzufügen. |
Gehen Sie beispielsweise wie folgt vor, um die maximale Länge des benutzerdefinierten
Erweiterungsattributs anzugeben:
<field property="attribute(school)" depends="maxbytelength,nonce">
<msg name="maxbytelength" key="errors.maxlength" />
<arg position="0" name="maxbytelength" key="label.editprofile.contactinformation.school" />
<arg position="1" name="maxbytelength" key="(maxbytelength)" resource="false" />
<var>
<var-name>maxbytelength</var-name>
<var-value>16</var-value>
</var>
<var>
<var-name>subEditForm</var-name>
<var-value>contactInfo</var-value>
</var>
Zum Beispiel:
<form-validation>
<formset>
<form name="editProfileForm">
<field property="attribute(contactInformation.extattr.property1)" depends="required">
<msg name="required" key="errors.required" />
</field>
<field property="attribute(associatedInformation.description)" depends="maxlength">
<msg name="maxlength" key="errors.aboutMe" />
<var>
<var-name>maxlength</var-name>
<var-value>1500</var-value>
</var>
</field>
- Fügen Sie den folgenden Code zur Datei validation.xml hinzu, damit der Struts-Validator die von Ihnen bearbeitete Registerkarte erkennen kann.
<var>
<var-name>subEditForm</var-name>
<var-value>sectionName</var-value>
</var>
Dabei steht sectionName für einen der folgenden Werte:
- contactInfo. Für Felder mit Personen- oder Jobinformationen.
- aboutMe. Für Felder mit zugehörigen Informationen.
Zum Beispiel:
<form-validation>
<formset>
<form name="editProfileForm">
<field property="attribute(contactInformation.extattr.property1)" depends="required">
<msg name="required" key="errors.required" />
<var>
<var-name>subEditForm</var-name>
<var-value>contactInfo</var-value>
</var>
</field>
<field property="attribute(associatedInformation.description)" depends="maxlength">
<msg name="maxlength" key="errors.aboutMe" />
<var>
<var-name>maxlength</var-name>
<var-value>1500</var-value>
</var>
<var>
<var-name>subEditForm</var-name>
<var-value>aboutMe</var-value>
</var>
</field>
Anmerkung: Diese Abschnitts-IDs beziehen sich auch auf die Anzeigevorlage
profileEdit.ftl, wie unter
Anzeigefelder zum
Bearbeiten anpassen beschrieben. Die in der Datei
profileEdit.ftl angegebenen Anzeigeabschnitte müssen
dem in den Validatorattributen definierten Abschnittsnamen entsprechen.
- Definieren Sie eine Beschriftung für das erforderliche Feld. Notieren Sie hierzu die
ID der Erweiterung, nämlich den Wert nach .extrattr., in
der Attributdefinition für das Feld.
Der Wert
für das Feld lautet beispielsweise
property1:
<field property="attribute(contactInformation.extattr.property1)" ...>
Legen Sie
das Attribut
extensionIdRef des Elements
<extensionAttribute> fest,
um das Feld in der Datei
profiles-config.xml so zu definieren, dass es dem
hier notierten Wert entspricht. Weitere Details finden Sie unter
Benutzerdefinierte Erweiterungsattribute
für die Anwendung "Profile" aktivieren.
Anmerkung: Blenden Sie keine erforderlichen
Attributfelder aus. Wenn ein Benutzer die Kontaktinformationen seines Profils
bearbeitet und erforderliche Feldinformationen für diesen Benutzertyp ausgeblendet werden,
kann das bearbeitete Profilformular nicht gespeichert werden.
Sie sollten
für alle benutzerdefinierten Felder, die Sie hinzufügen, eine Beschriftung definieren. Es ist jedoch besonders wichtig,
eine Beschriftung für ein erforderliches Feld zu definieren, denn wenn der Benutzer keinen Wert in das Feld eingibt,
sondern versucht, das Formular zu speichern, wird die Nachricht angezeigt,
dass x erforderlich ist,
wobei x die Feldbeschriftung ist. Wenn Sie keine Beschriftung für das Feld
definieren, wird stattdessen der Begriff null verwendet.
Benutzern wird folglich die Nachricht null is required (Null ist erforderlich) angezeigt, wenn sie
versuchen, die Seite zu speichern. Benutzer wissen dann nicht, welches Feld ausgefüllt werden muss,
bevor sie die Seite erfolgreich speichern können.