2010-11-30 5 views
0

В нашем приложении мы используем jsf, у нас есть , чтобы перенаправить пользователя на домашнюю страницу после истечения срока их сеанса. Для этого мне нужен путь к домашней странице, которую я сохранил в моем управляемом бите в качестве управляемого компонента Но после истечения срока действия сеанса, если я попытаюсь получить доступ к нему, возникнет исключение из null-указателя (управляемый bean-элемент станет null). Затем я решил попробовать альтернативный (то есть) создать класс локального выхода вручную и попытаться получить доступ к свойству, свойство, которое я хочу получить, становится null. Как я могу получить доступ к ? Пожалуйста, помогите мне. Спасибо заранее.Когда создается управляемый компонент и создается свойство боба?

+0

Потому что мне нужно получить путь главной страницы как динамический. Он не должен быть горячим. И только я хочу сохранить как управляемое свойство. – 2010-11-30 08:06:39

ответ

1

В дополнение к предыдущему ответу:

Вы можете использовать (в web.xml)

<error-page> 
<exception-type>javax.faces.application.ViewExpiredException</exception-type> 
<location>viewexpired.jsp</location> 
</error-page> 

Или Параметры контекста вместо атрибутов сеанса. См:

Или использовать (в гранях-context.xml)

<managed-bean-scope>application</managed-bean-scope>  

для вашего боба, поэтому он будет оставаться независимым от сессии.

1

Правильный способ сделать это объявить исключение обработчика завода в гранях-config.xml, а затем реализует завод по подклассов javax.faces.context.ExceptionHandlerFactory, а затем отвергая handle() метод в реализации javax.faces.context.ExceptionHandlerWrapper. Там вы должны проанализировать исключение для класса ViewExpiredException и перенаправить на страницу с истекшим просмотром в этом случае.

+0

Привет, Иванов. Мы использовали то же самое в наших приложениях. Но проблема заключается только в перенаправлении на страницу с ошибкой. Мое приложение перенаправляется на страницу с ошибкой. Но страница не загружается. – 2010-12-01 01:53:29