Дефинирах страница за грешка в моя web.xml за грешка 404 по следния начин:
<error-page>
<error-code>404</error-code>
<location>/common/messages/pageNotFoundError.jsf</location>
</error-page>
Обработката на невалиден URL адрес на страница работи по предназначение - потребителят се пренасочва към страницата pageNotFoundError.
Също така дефинирах персонализиран манипулатор на изгледи в faces-config.xml. Манипулаторът на изглед отменя метода createView(FacesContext context, String viewId).
Сега е проблемът - когато страница съдържа графично изображение с невалиден път (което не мога да избегна, защото потребителите могат сами да дефинират пътища), методът createView се извиква два пъти. Веднъж с viewId = идентификатор на текущата страница (както очаквах) и веднъж с viewId = "/common/messages/pageNotFoundError.jsf". Има ли някакъв начин да се разграничи в метода createView "нормалното" създаване на страница от 404 (или всяка друга) обработка на грешки (не искам да сравнявам низове на viewId)? Или може би методът createView не трябва да се извиква в тази ситуация - в този случай въпросът ми е как да променя конфигурацията, за да постигна това?