2012-04-02 7 views
5

Ich habe einen Eingangstext, der auf eine Long Eigenschaft zugeordnet ist.Wie JSF Umwandlung Nachricht anpassen ‚muss eine Zahl sein, die aus einer oder mehreren Ziffern‘?

private Long length; 

<h:inputText value="#{bean.length}" /> 

Wenn ich nicht-Ziffern in diesem Eingabetext eingeben, erhalte ich die folgenden Konvertierungsfehler:

myForm:myField: 'someText' must be a number consisting of one or more digits.

Ich frage mich, wie diese Nachricht anpassen zu:

length must be a number greater than zero.

Antwort

9

Entweder verwenden das converterMessage Attribut des Eingabekomponente:

<h:inputText converterMessage="length must be a number greater than zero" /> 

(und vergessen Sie nicht <f:validateLongRange> zu verwenden Benutzer in der Lage zu verhindern, dass ein validatorMessage negative Werte eingeben und liefern!)

Oder Erstellen Sie eine Eigenschaftendatei im Klassenpfad, die die Standardnachricht des integrierten JSF LongConverter überschreibt:

javax.faces.converter.LongConverter.LONG = length must be a number greater than zero 
javax.faces.converter.LongConverter.LONG = length must be a number greater than zero 

210 und als Nachrichtenpaket registriert in faces-config.xml:

<application> 
    <message-bundle>com.example.CustomMessages</message-bundle> 
</application> 

Das obige Beispiel nimmt an, dass der Dateiname CustomMessages.properties ist und in com.example Paket platziert. Sie können es nennen und setzen wo immer Sie wollen.

Eine Übersicht über alle Nachrichtenschlüssel wie javax.faces.converter.LongConverter.LONG und ihre Standardwerte finden Sie im Kapitel 2.5.2.4 von the JSF specification, das auch in this answer kopiert wird.