tutorial java jsp struts2 http-headers struts2-jquery

java - struts 2 tutorial



Struts2 jquery panel con pestaƱas en tiempo de espera no disparar eventos (1)

He hecho algunas pruebas y aquí lo que encuentro.

Vamos a probar un simple sj:div que es de alguna manera más simple. Si usa el resultado httpheader con status:403 , puede usar algo como:

<sj:div href="/security/login.ib" onErrorTopics="loadError" targets="test">Test</sj:div> $.subscribe(''loadError'', function(event, data) { alert(''some error happend''); if(event.originalEvent.request.status){ var status = event.originalEvent.request.status; alert(status); } });

Tenga en cuenta que no debe usar event.originalEvent.request.status

Volver a sj:tab ....

La pestaña sj: no funciona con onAlwaysTopics o onErrorTopics , parece ser un error. Sin embargo, puede usar onCompleteTopics o puede estar onChangeTopics .

<sj:tabbedpanel id="remotetabs" show="true" hide="''fade''" collapsible="true" sortable="true" onCompleteTopics="loadError" >

Pero no puedes usar el resultado de httpheader . Con status:403 , loadError no se llamará en absoluto.

De modo que puede usar onCompleteTopics en su jsp y devolver un json que le permitirá saber qué se debe hacer.

O puedes usar

$(document).ajaxError( function(e, xhr, settings, exception) { if (xhr.status == 403) { //Do what you want } }

No se debe ajaxError el ajaxError anterior para cada ajaxError , no solo cuando cambias las pestañas. Puede ser que use settings.url puede ayudar.

Tenga un <sj:tabbedppanel> en una página. Después de que el tiempo de espera de la sesión intente hacer clic en otra pestaña del panel con pestañas, se debe redirigir al usuario para iniciar sesión en Poage. <sj:tabbed> panel <sj:tabbed> no enciende onErrorTopics . Consulte a continuación y guíeme sobre cómo solucionar este problema. Estoy viendo en error de fuego que se arrojó el error 403, pero no puedo atraparlo en jsp. Necesito ayuda con lo mismo.

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>