2012-04-11 3 views
0

Ich versuche, eine allgemeine Fehlermeldung anzuzeigen, wenn ein Benutzer mit POST-Daten in einem Richfaces-Kalender manipuliert. (Verwendung von Tamper-Daten Firefox-Plugin).JSF-Fehlerseite für Ausnahmen anzeigen, wenn der Benutzer das Formular manipuliert

Ich wähle ein normales Datum, schalte den Sabotagekontakt ein und passe den Datumswert so an, dass er Stringwerte enthält. Er kehrt auf die Seite die folgenden Fehlermeldungen angezeigt wird:

java.lang.NumberFormatException: For input string: "2012dsafsf" 
java.lang.NumberFormatException: For input string: "2012sdfsdf" 

ich <h:messages /> bin mit Nachrichten anzuzeigen.

Ich habe meiner web.xml Folgendes hinzugefügt, aber es wird nicht auf diese Seite umgeleitet.

<error-page> 
    <exception-type>java.lang.NumberFormatException</exception-type> 
    <location>/error.xhtml</location> 
</error-page> 

Irgendwelche Ideen, wo ich falsch liege?

Was ich im Wesentlichen brauche, ist eine generische Klasse/Phase listener/converter/was auch immer .. um bestimmte Arten von Ausnahmen abzufangen und zu behandeln, die von JSF abgefangen werden. (Nicht unbehandelte Ausnahmen).

Dank

+0

senden Sie eine asynchrone (Ajax) oder synchron (normal) Anforderung der Fehlerdokumente verwendet? Ist das JSF 1.x oder 2.x? – BalusC

+0

Ich sende eine synchrone Anfrage mit JSF 2.0 BalsusC. –

+0

@BalsusC - Siehe meinen letzten Kommentar. Ich komme jetzt wieder zurück. Ich versuche grundsätzlich, alle Ausnahmen dieses Typs auf eine Fehlerseite umzuleiten. Muss ich einen Phasen-Listener erstellen, um die Nachricht abzufangen? Ich habe derzeit ein ExceptionHandlerWrapper-Setup, um unbehandelte Ausnahmen zu behandeln. Könnte dies verwendet werden, um diese Art von Ausnahmen auch abzufangen? –

Antwort

1

Der einfachste Weg, um es zu beheben ist ein Validator zum Feld hinzuzufügen. Mit dem Validator ist es möglich, eine spezifische Nachricht für diesen Fehler hinzuzufügen.

Einige Informationen über die Validierung & Umwandlung: http://www.ibm.com/developerworks/java/library/j-jsf3/

sind für HTTP-Statuscodes (zum Beispiel 404/500)

+0

Danke Mark, ich habe einen Validator erstellt und das funktioniert ABER ich würde auch gerne wissen, warum meine web.xml Änderungen nicht abgeholt wurden. –

+0

Ich denke, die Ausnahme geworfen wird in eine andere Art von Ausnahme gewickelt. Eine javax.servlet.ServletException ist ein guter Test. Aber auch das ist raten. –

Verwandte Themen