Benutzerdefiniertes Feld als erforderlich angeben und maximale Feldlänge deklarieren

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.

  1. Speichern Sie eine Kopie der Datei was_profile_root\installedApps\cell_name\profiles.ear\lc.profiles.app.war\WEB-INF\validation.xml.
  2. Ö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>
  3. 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.
  4. 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.