【发布时间】:2016-03-29 07:41:07
【问题描述】:
在页面上有一个<sj:tabbedppanel>。
会话超时后,尝试单击选项卡式面板的另一个选项卡应将用户重定向到登录 poage。
<sj:tabbed> 面板未触发 onErrorTopics。请参阅下文并指导我如何解决此问题。我在 fire bug 中看到抛出了 403 错误,但我无法在 jsp 中捕获它。需要帮助。
struts.xml
<action name="secondPanel" class="com.xxx.secondPanelAction">
<interceptor-ref name="sampleDefaultStack" />
<result>/jsp/secondPanel.jsp</result>
<result name="login" type="httpheader">
<param name="error">403</param>
<param name="errorMessage">User session expired </param>
</result>
</action>
jsp
<sj:tabbedpanel id="remotetabs" selectedTab="0" show="true" hide="'fade'" collapsible="true" sortable="true" onErrorTopics="loadError">
<sj:tab id="tab2" href="%{createUrl}" key="label.create" onErrorTopics="loadError"/>
<sj:tab id="tab1" href="%{updateUrl}" key="label.update" onErrorTopics="loadError"/>
</sj:tabbedpanel>
<script type="text/javascript" >
$(document).ready(function() {
$.subscribe('loadError', function(event, data) { alert('in error');
var status = event.originalEvent.status;
if(status == 403 ) {
window.location.href = "/Sample/login.action";
}
});
</script>
【问题讨论】:
-
你输入你的javascript函数了吗?您的 var status 的值是多少?
-
不,我没有进入javascript函数。
-
您的
<head>中有<sj:head/>吗? -
是的,我愿意。我能够很好地显示标签面板。现在尝试实现会话超时并在处理它时遇到问题。我可以看到拦截器工作正常,服务器发回 403 结果,但客户端没有进入 java 脚本函数。
-
您可以尝试在参数中使用“状态”而不是“错误”吗?
标签: java jsp struts2 http-headers struts2-jquery