Validierungsfehlermeldung in JSF 2.0 anpassen

Passen Sie die Validierungsfehlermeldung in JSF 2.0 an

Die standardmäßigen JSF-Konvertierungs- und Validierungsfehlermeldungen sind zu detailliert, technisch oder manchmal nicht wirklich lesbar. In diesem Artikel erfahren Sie, wie Sie die Standardkonvertierungs- oder Überprüfungsfehlermeldung in JSF 2.0 anpassen.

Zusammenfassender Leitfaden

  1. Suchen Sie Ihren Nachrichtenschlüssel in der Datei jsf-api-2.x.jar, "Messages.properties".

  2. Erstellen Sie eine eigene Eigenschaftendatei, und geben Sie den gleichen Nachrichtenschlüssel ein, den Sie in der obigen Datei "Messages.properties" gefunden haben. Überschreiben Sie ihn mit Ihrer benutzerdefinierten Fehlermeldung.

  3. Registrieren Sie Ihre Eigenschaftendatei in "faces-config.xml" und legen Sie sie als Anwendungsebene fest.

  4. Erledigt.

1. Messages.properties

Alle JSF-Standardkonvertierungs- und Validierungsfehlermeldungen werden in der Datei "Messages.properties" gespeichert, die sich ausjsf-api-2.x.jar, "javax aces\Messages.properties" befindet (siehe Abbildung unten).

jsf2-Custom-Validation-Error-Example-1

Siehe Teil dieser Datei "Messages.properties"

...
# ===================================================================
# Converter Errors
# ===================================================================
javax.faces.converter.DateTimeConverter.DATE={2}: ''{0}'' could not be understood as a date.
javax.faces.converter.DateTimeConverter.DATE_detail={2}: ''{0}'' could not be understood as a date. Example: {1}
...
# ====================================================================
# Validator Errors
# ====================================================================
javax.faces.validator.LengthValidator.MAXIMUM={1}: Validation Error: Length is greater than allowable maximum of ''{0}''
javax.faces.validator.LengthValidator.MINIMUM={1}: Validation Error: Length is less than allowable minimum of ''{0}''
...

Beispiel:
1. <f:validateLength minimum=”5″ maximum=”10″ />
Wenn die Validierung der maximalen Länge fehlgeschlagen ist, erhält JSF "javax.faces.validator.LengthValidator.MAXIMUM".
Wenn die Validierung der minimalen Länge fehlgeschlagen ist, JSF erhält "javax.faces.validator.LengthValidator.MINIMUM".

2. <f:convertDateTime pattern=”d-M-yyyy” />
Wenn die Datumsüberprüfung fehlgeschlagen ist, erhält JSF "javax.faces.converter.DateTimeConverter.DATE_detail".

Note
Wenn Sie nicht sicher sind, welcher Schlüssel mit welchem ​​Validator-Tag übereinstimmt, zeigen Sie die Fehlermeldung nur einmal an und vergleichen Sie sie mit „Messages.properties“. Dann wissen Sie, welchen Schlüssel Sie überschreiben möchten.

2. Benutzerdefinierte Fehlermeldung

Erstellen Sie eine Eigenschaftendatei mit dem Namen "MyMessage.properties" (kann ein beliebiger Name sein), geben Sie den Nachrichtenschlüssel und die benutzerdefinierte Fehlermeldung ein. Speichern Sie diese Eigenschaftendatei später in Ihrem Projektressourcenordner.

MyMessage.properties

javax.faces.converter.DateTimeConverter.DATE={2}: ''{0}'' could not be understood as a date.
javax.faces.converter.DateTimeConverter.DATE_detail=Invalid date format.

javax.faces.validator.LengthValidator.MINIMUM=Minimum length of ''{0}'' is required.

Jetzt werden Sie die Validierungsfehlermeldung für "javax.faces.validator.LengthValidator.MINIMUM" und die Konvertierungsfehlermeldung für "javax.faces.converter.DateTimeConverter.DATE_detail" anpassen.

Note
Für den XXX_detail-Nachrichtenschlüssel müssen Sie auch den übergeordneten Schlüssel (Zusammenfassungsnachricht) überschreiben, der XXX ohne das dahinter stehende "_detail" ist. Andernfalls ignoriert JSF Ihre neue benutzerdefinierte Fehlermeldung und erhält weiterhin die Standardfehlermeldung von "Messages.properties". Ist dies möglicherweise ein Fehler in JSF 2.0?

3. Nachrichtenpaket registrieren

Registrieren Sie Ihre benutzerdefinierte Eigenschaftendatei in "faces-config.xml" und geben Sie sie als Anwendungsebene an.

faces-config.xml



     
      
        com.example.MyMessage
      
     

4. Demo

Fügen Sie auf einer JSF-Seite die Validierung von<f:validateLength /> und<f:convertDateTime />hinzu.




    

        

Customize validation error message in JSF 2.0

Enter your username : Enter your DOB :

Wenn die Validierung fehlgeschlagen ist, zeigen Sie jetzt Ihre benutzerdefinierte Fehlermeldung an.

jsf2-Custom-Validation-Error-Example-2

Quellcode herunterladen

Laden Sie es herunter -JSF-2-Custom-Validation-Error-Message-Example.zip (11 KB)