Могу ли я использовать правило навигации JSF в сервлете для перенаправления? - PullRequest
0 голосов
/ 28 августа 2010

Мне нужно использовать несколько сервлетов в моем веб-приложении.Сервлеты выполняют небольшую обработку, а затем перенаправляют пользователя на страницу xhtml.

У меня уже есть правила навигации в моем приложении, которые я хотел бы повторно использовать в своем сервлете.

Пример:

<navigation-case>
    <from-outcome>bookingFailed</from-outcome>
    <to-view-id>/SecureUser/Reservation/New/BookingFailed.xhtml</to-view-id>
    <redirect/>
</navigation-case>

Теперь внутри сервлета я хотел бы использовать что-то вроде:

response.sendRedirect("bookingFailed");

вместо

response.sendRedirect("faces/SecureUser/Reservation/New/BookingFailed.xhtml");

Как я могу пойтиоб этом?

1 Ответ

1 голос
/ 28 августа 2010

Поскольку сервлеты не работают внутри контекста JSF, вам действительно нужно проанализировать все записи <navigation-case> из файла faces-config.xml в Map самостоятельно, чтобы в итоге вы могли выполнить:

response.sendRedirect("faces" + navigationCases.get("bookingFailed"));

В этом могут быть полезны встроенные JAXP и XPath API.

Тем не менее, вы действительно можете выполнить контекстно-зависимую обработку JSF внутри контекста JSF, а не в простом ванильном сервлете. Используйте конструктор управляемого компонента или PhaseListener прослушивания RESTORE_VIEW.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...