struts-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From fea jabi <zy...@hotmail.com>
Subject Re: struts2 interceptor session timeout with ajax
Date Tue, 29 Mar 2016 19:59:04 GMT
Thanks, it worked but now trying this and not sure how to fix this. 

Have a <sj:tabbedppanel> on a page.
After session timeout trying to click on another tab of tabbed panel should redirect the user
to login page. 
<sj:tabbed> panel not firing the onErrorTopics. The javascript function is not getting
called. The server is sending result 403. Please see below and guide me on how to fix this
issue. I am seeing in fire bug that the 403 error is thrown but I am unable to catch it in
jsp. Need help with the same.

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, status, data) { alert('in error');
	      var status1 = event.status;
	 	
	      if(status1 == 403 ) {
	          window.location.href = "/Sample/login.action";
	      }
        });	
    </script>







________________________________________
From: Lukasz Lenart <lukaszlenart@apache.org>
Sent: Friday, March 11, 2016 2:21 PM
To: Struts Users Mailing List
Subject: Re: struts2 interceptor session timeout with ajax

It won't work that way, when using Ajax you must use Ajax to redirect
to a login page. You can use something like this

http://cypressnorth.com/programming/global-ajax-error-handling-with-jquery/

so your interceptor must return 403 status code (it can return also an
url to login page to redirect to) and you must handle redirect on
client side


Regards
--
Ɓukasz
+ 48 606 323 122 http://www.lenart.org.pl/

2016-03-11 15:31 GMT+01:00 fea jabi <zyxrm@hotmail.com>:
> Need help with this please.
>
> ________________________________________
> From: fea jabi <zyxrm@hotmail.com>
> Sent: Wednesday, March 9, 2016 10:51 AM
> To: user@struts.apache.org
> Subject: struts2 interceptor session timeout with ajax
>
> Have jquery tabbed panel in a jsp page which has a button to Save the form in the tabbed
panel which is making an ajax call and is working fine.
>
> Now trying to implement the session management for all requests in the application and
imlemented the new interceptor to perform the same. Having issue with session management with
the ajax calls. Have the below package for ajax requests in which configured the new interceptor
created and the default interceptor. But, the below is not redirecting to the login page instead
opening the popup with login page html in it. what am I missing here?
>
> <package name="ajax-default" extends="json-default" namespace="/ajax">
>
> <interceptors>
>
> <interceptor class="com.xxx.LoginInterceptor" name="loginInterceptor">
>
> </interceptor>
>
> <interceptor-stack name="appDefaultStack">
>
> <interceptor-ref name="loginInterceptor" />
>
> <interceptor-ref name="defaultStack" />
>
> </interceptor-stack>
>
> </interceptors>
>
> <default-interceptor-ref name="appDefaultStack"></default-interceptor-ref>
>
> <action name="saveAJAXAction" class="com.xxx.descAction" method="saveDesc">
>
> <result type="json" name="success">
>
> <param name="noCache">true</param>
>
> <param name="excludeNUllProperties">true</param>
>
> <param name="root">jsonResult</param>
>
> </result>
>
> <result name="login" type="redirectAction">
>
> <param name="actionName">appLogin</param>
>
> <param name="namespace">/</param>
>
> </result>
>
> </action>
>
> ........
>
> </package>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
> For additional commands, e-mail: user-help@struts.apache.org
>

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org


Mime
View raw message