Перенаправление на тайм-ауте сессии в JSF-Richfaces-facelet

Не зная точно, каковы Ваши требования, вот то, что я сделал, чтобы видеть, что договоры проходят от iPhone: Соедините Mac на Ethernet, совместно используйте его сеть по аэропорту и подключите iPhone к той беспроводной сети. Выполненный Соглядатай Wireshark или Пакета на Mac

6
задан Jinesh 17 September 2009 в 11:44
поделиться

3 ответа

Это должно сработать:

<error-page>
    <exception-type>javax.faces.application.ViewExpiredException</exception-type>
    <location>/sessionExpired.jsf</location>
</error-page>
7
ответ дан 8 December 2019 в 18:39
поделиться

Другое решение - создать CustomViewHandler, расширяющий ViewHandler и переопределите метод restoreView

@Override
public UIViewRoot restoreView(FacesContext facesContext, String viewId) {
/**
 * {@link javax.faces.application.ViewExpiredException}. This happens only  when we try to logout from timed out pages.
 */
    UIViewRoot root = null; 
    root = parent.restoreView(facesContext, viewId);
    if(root == null) {          
        root = createView(facesContext, viewId);
    }
    return root;
}

Затем вам нужно добавить его в свой faces-config.xml

<view-handler>com.demo.CustomViewHandler</view-handler>

. Это предотвратит получение вами ViewExpiredException

0
ответ дан 8 December 2019 в 18:39
поделиться

Решением является использование собственного события истечения сессии Richfaces.

Добавьте это на страницу, срок действия которой истекает:

<a4j:region>
 <script language="javascript">
 A4J.AJAX.onExpired = function(loc, expiredMsg){
 alert('expired!');
 window.location = "/login.jsf";
 }
 </script>
</a4j:region>

Более подробную информацию можно найти в документации RichFaces: http://docs.jboss.org/richfaces/latest_3_3_X/en/devguide/html/ArchitectureOverview.html#SessionExpiredHandling

1
ответ дан 8 December 2019 в 18:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: