JSF-Validierung Nachricht

Ich bin mit JSF 1.2 und Richfaces 3.3.ENDGÜLTIG. Ich habe eine inputText was muss eine Zahl zwischen 1 und 999999999999.

<h:inputText id="prodId" required="true" value="#{product.productId}" maxlength="12" >
    <f:validator validatorId="anotherValidatorValidator" />
    <f:validateLongRange minimum="1" maximum="999999999999"/>
</h:inputText>

Möchte ich meine prüfungsmeldung zu sagen im Grunde, muss der Benutzer geben Sie eine Zahl zwischen 1 und 99...9. Im Fall, dass ich geben Sie die Zahl -1 ein und senden das Formular, dies ist die Nachricht, die angezeigt wird, die ist, was ich will.

Wenn ich aber Briefe schreiben, in dem Bereich, sagen wir 'abcd' ich :

prodId: 'abcd' muss eine Zahl zwischen -9223372036854775808 bis 9223372036854775807 Beispiel: 98765432

Diese Nachricht ist verwirrend für den Benutzer, weil, wenn die vorgeschlagene negative zahlen vorgelegt werden, die anderen validateLongRange validator werfen einer Nachricht, jetzt die Frage, für die zahlen zwischen den richtigen Bereich.

Die zweite Meldung tritt auf, weil ein ConverterException wird ausgelöst, wenn die submittes String ist gegossen, um eine Lange (das ist der Typ der backing-bean-Eigenschaft), und die Nachricht javax.faces.component.UIInput.CONVERSION_MESSAGE_ID erscheint.

Kann ich das irgendwie überschreiben (nicht für alle ConverterException Fällen, nur die speziellen), oder die Botschaft von der anderen validateLongRange erscheinen?

  • JSF-1.x oder 2.x? Sie haben <message-bundle> im faces-config?
  • JSF 1.2 und richfaces 3.3.3.FINAL
  • Ich habe nicht ein <message-bundle> nur <resource-bundle>. Allerdings würde ich nicht wollen, überschreiben Sie die CONVERSION_MESSAGE_ID für alle Fälle, wenn dies ist, was Sie vorschlagen. Macht es Sinn für andere Fälle.
  • Nein, nur zur Erleichterung der Nachrichtenübermittlung 🙂 Ohne Sie haben zu fest es sich selbst, oder importieren JSF-Implementierung bestimmter Klassen zu packen, die gewünschte Nachricht.
Schreibe einen Kommentar