struts-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Lukasz Lenart <lukaszlen...@apache.org>
Subject Re: struts2 interceptor session timeout with ajax
Date Wed, 30 Mar 2016 05:59:28 GMT
I think you must use `onSuccessTopics` instead of `onErrorTopics` -
returning 403 doesn't mean an error

2016-03-29 21:59 GMT+02:00 fea jabi <zyxrm@hotmail.com>:
> 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
>

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


Mime
View raw message