Wie sende ich eine Person auf eine 404-Seite, wenn f: viewParam / converter null zurückgibt?

Nehmen wir an, Sie hatten eine Seite mit einem Ansichtsparameter wie/widgets?widgetId=1

    <f:metadata>
        <f:viewParam
            name="widgetId"
            value="#{widgetIdMB.widgetId}"
            converter="#{widgetIDConverter}" />
    </f:metadata>

Sagen Sie also weniger, Ihr Konverter wirft einConverterException, weil jemand versucht hat zu navigieren/widgets?widgetId=1000000, die nicht in der Datenbank vorhanden sind. Gibt es eine Möglichkeit, die Person in diesem Fall zur 404-Seite zu senden?

BEARBEITEN:

Ich habe einen Konverter verwendet, um den Wert zu konvertieren. Wenn der Wert nicht in der Datenbank nachgeschlagen werden kann, gibt der Konverter null zurück, anstatt eine ConverterException auszulösen.

Dann benutze ich einen Validator. Der Validator löst eine Validierungsausnahme aus, jedoch nicht nach dem Aufrufen der Dienstprogrammklasse omnifaces:Faces.responseSendError(404, "Not Found");

Dies scheint die beste Umsetzung der Trennung von Bedenken zu sein.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage