JSF Validierung eigene Meldungen

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo,

hab folgendes Problem. Hab mein Passwort auf required = true gesetzt. Nun wenn man keines eingibt erschreibt folgende Fehlermeldung:

index:password: Validierungs-Fehler: Wert wird benötigt.

Wie kann ich diese Nun durch eine Eigene ersetzen? zB durch:

Sie haben vergessen das Passwort einzugeben.
 

Reeny

Aktives Mitglied
Hi,

ich weiß, dass das mit MyFaces (ab Version 1.2) geht. Dort gibt es ein Attribut zu dem Feld (<h:inputText> ... ?), dass heißt "requiredMessage".

Code:
<h:inputText id="myInput" value="#{bean.field}" required="true" requiredMessage="Schallala"/>
 
G

Guest

Gast
Hallo,

du kannst in der faces-config.xml die properties-Datei definieren, in der die Meldungen stehen.

Code:
 <application>
    ...
    <message-bundle>org.example.bundle.Messages</message-bundle>
    <locale-config>
        <default-locale>en</default-locale>
        <supported-locale>de</supported-locale>
    </locale-config>
</application>

Die properties-Datei /org/example/bundle/Message.properties muss dann folgende Schlüssel besitzen:

Code:
javax.faces.component.UIInput.CONVERSION                =
javax.faces.component.UIInput.REQUIRED                  =
javax.faces.component.UISelectMany.INVALID              =
javax.faces.component.UISelectOne.INVALID               = 
javax.faces.converter.BigDecimalConverter.DECIMAL       =
javax.faces.converter.BigIntegerConverter.BIGINTEGER    =
javax.faces.converter.BooleanConverter.BOOLEAN          =
javax.faces.converter.ByteConverter.BYTE                =
javax.faces.converter.CharacterConverter.CHARACTER      =
javax.faces.converter.DateTimeConverter.DATE            = 
javax.faces.converter.DateTimeConverter.DATETIME        = 
javax.faces.converter.DateTimeConverter.PATTERN_TYPE    = 
javax.faces.converter.DateTimeConverter.TIME            = 
javax.faces.converter.DoubleConverter.DOUBLE            = 
javax.faces.converter.FloatConverter.FLOAT              = 
javax.faces.converter.IntegerConverter.INTEGER          = 
javax.faces.converter.LongConverter.LONG                = 
javax.faces.converter.NumberConverter.CURRENCY          = 
javax.faces.converter.NumberConverter.NUMBER            = 
javax.faces.converter.NumberConverter.PATTERN           = 
javax.faces.converter.NumberConverter.PERCENT           = 
javax.faces.converter.STRING                            = 
javax.faces.validator.DoubleRangeValidator.MAXIMUM      = 
javax.faces.validator.DoubleRangeValidator.MINIMUM      = 
javax.faces.validator.DoubleRangeValidator.NOT_IN_RANGE = 
javax.faces.validator.DoubleRangeValidator.TYPE         = 
javax.faces.validator.LengthValidator.MAXIMUM           = 
javax.faces.validator.LengthValidator.MINIMUM           = 
javax.faces.validator.LongRangeValidator.MAXIMUM        = 
javax.faces.validator.LongRangeValidator.MINIMUM        = 
javax.faces.validator.LongRangeValidator.NOT_IN_RANGE   = 
javax.faces.validator.LongRangeValidator.TYPE           = 
javax.faces.validator.NOT_IN_RANGE                      =

Diese Variante ist lt. JSF The Complete Reference die richtige Wahl. Dort ist ab S. 137ff. auch die Bedeutung der einzelnen Schlüssel beschrieben (findest aber aufgrund des Namens, durch probieren oder im Inet auch selbst raus ^^). Hat zudem den Vorteil, dass man so die Mehrsprachigkeit sehr bequem und zentral, analog zur Lokalisierung mit den Resource-Files, verwalten kann.

Gruß
fkh

PS: Das sind jetzt nur die Standardschlüssel. Für eigene Validatoren musst du natürlich eigene Schlüssel definieren ^^
 

freez

Top Contributor
Ist zwar schon etwas älter, der Beitrag, aber ich habe dazu noch eine Frage:

PS: Das sind jetzt nur die Standardschlüssel. Für eigene Validatoren musst du natürlich eigene Schlüssel definieren ^^

Wie geht das? bei google & co habe ich keine sinnvollen Informationen gefunden.
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben