如何在会话超时后处理AJAX中的重定向?

时间:2013-07-30 11:16:45

标签: java-ee jboss wicket session-timeout wicket-6

当我的会话在AJAX请求之前超时时,我没有被重定向到登录页面,而是收到此错误消息:

  

错误:Wicket.Ajax.Call.failure:解析响应时出错:错误:无效的XML

然后是我的登录页面html。我希望在会话过期后立即重定向到登录页面。但如果不可能,重定向某种点击就行了。如何处理这个问题最好?

1 个答案:

答案 0 :(得分:0)

final Button searchButton = new AjaxButton(buttonId) {

        private static final long serialVersionUID = 1L;

        @Override
        protected void updateAjaxAttributes(AjaxRequestAttributes attributes) {
            // TODO Auto-generated method stub
            super.updateAjaxAttributes(attributes);
            AjaxCallListener ajaxCallListener = new AjaxCallListener() {

                /**
                 * 
                 */
                private static final long serialVersionUID = 1L;

                @Override
                public CharSequence getFailureHandler(Component component) {
                    return "window.location.replace(\"stackoverflow.com\");";
                }


            };
            attributes.getAjaxCallListeners().add(ajaxCallListener);
        }}

将其添加到每个AJAX组件后,它都有效。一旦AJAX调用出现问题,就会出现重定向。在我的情况下,我将它重定向到我的登录页面,因为当发生这种情况时用户已经注销。它可能不是最好的方式,但它是我能够解决它的唯一方法。