Jak wysłać osobę na stronę 404, jeśli f: viewParam / converter zwraca wartość null?
Powiedzmy, że masz stronę z param, jak/widgets?widgetId=1
<f:metadata>
<f:viewParam
name="widgetId"
value="#{widgetIdMB.widgetId}"
converter="#{widgetIDConverter}" />
</f:metadata>
Więc, powiedzmy, że twój konwerter wyrzucaConverterException
, ponieważ ktoś próbował przejść do/widgets?widgetId=1000000
, który nie istnieje w bazie danych. Czy istnieje sposób na wysłanie osoby na stronę 404, kiedy to nastąpi?
EDYTOWAĆ:
Użyłem konwertera do konwersji wartości. Jeśli wartości nie można wyszukać w bazie danych, konwerter zwraca wartość null, zamiast rzucać wyjątek ConverterException.
Następnie używam walidatora. Walidator rzuci wyjątek sprawdzania poprawności, ale nie po wywołaniu klasy narzędzi omnifaces:Faces.responseSendError(404, "Not Found");
Wydaje się, że jest to najlepsza realizacja rozdziału obaw.