ajax action 不跳转

Ext结合Struts的Session超时处理
博客分类: Ext
EXTStrutsAjaxUIJavaScript
配置struts.xml文件的默认拦截器(注:登录的action用<default-interceptor-ref name="defaultStack" />)

Xml代码
<interceptors>
<interceptor name="loginInterceptor" class="com.fireinjava.ui.interceptor.LoginInterceptor" />
<interceptor-stack name="myDefaultIntegerceptor">
<interceptor-ref name="loginInterceptor" />
<interceptor-ref name="defaultStack" />
</interceptor-stack>
</interceptors>

<default-interceptor-ref name="myDefaultIntegerceptor" />

<interceptors>
<interceptor name="loginInterceptor" class="com.fireinjava.ui.interceptor.LoginInterceptor" />
<interceptor-stack name="myDefaultIntegerceptor">
<interceptor-ref name="loginInterceptor" />
<interceptor-ref name="defaultStack" />
</interceptor-stack>
</interceptors>

<default-interceptor-ref name="myDefaultIntegerceptor" />

拦截器LoginInterceptor.java

Java代码
package com.fireinjava.ui.interceptor;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Map;

import javax.servlet.http.HttpServletResponse;

import org.apache.struts2.ServletActionContext;

import com.fireinjava.ui.UserEnv;
import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;

/**
* @version 1.0
* @data 2009-9-23
* @描述:检查Session是否超时
*/
public class LoginInterceptor extends AbstractInterceptor {

@Override
public String intercept(ActionInvocation actioninvocation) throws Exception {
ActionContext context = actioninvocation.getInvocationContext();
Map session = context.getSession();
UserEnv user = (UserEnv) session.get("userEnv");
System.out.println(">>>>>>>>>>>>>LoginInterceptor");
if (user != null) {
return actioninvocation.invoke();
} else {
outString("<script type=\"text/javascript\">var session='SessionExpired'; function getRootWin(){var win = window;while (win != win.parent){win =win.parent;}return win;} getRootWin().reLogin();</script>");//页面接收
}
return Action.NONE; // 页面上写一个Login弹出窗口
}

public void outString(String str) {
HttpServletResponse response = ServletActionContext.getResponse();
try {
response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", 0);
response.setContentType("text/html;charset=gbk");
PrintWriter out = response.getWriter();
out.write(str);
out.flush();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}

}

package com.fireinjava.ui.interceptor;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Map;

import javax.servlet.http.HttpServletResponse;

import org.apache.struts2.ServletActionContext;

import com.fireinjava.ui.UserEnv;
import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;

/**
* @version 1.0
* @data 2009-9-23
* @描述:检查Session是否超时
*/
public class LoginInterceptor extends AbstractInterceptor {

@Override
public String intercept(ActionInvocation actioninvocation) throws Exception {
ActionContext context = actioninvocation.getInvocationContext();
Map session = context.getSession();
UserEnv user = (UserEnv) session.get("userEnv");
System.out.println(">>>>>>>>>>>>>LoginInterceptor");
if (user != null) {
return actioninvocation.invoke();
} else {
outString("<script type=\"text/javascript\">var session='SessionExpired'; function getRootWin(){var win = window;while (win != win.parent){win =win.parent;}return win;} getRootWin().reLogin();</script>");//页面接收
}
return Action.NONE; // 页面上写一个Login弹出窗口
}

public void outString(String str) {
HttpServletResponse response = ServletActionContext.getResponse();
try {
response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", 0);
response.setContentType("text/html;charset=gbk");
PrintWriter out = response.getWriter();
out.write(str);
out.flush();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}

} jsp 页面代码:



Js代码
<script type="text/javascript">

function getRootWin(){
var win = window;
while (win != win.parent){
win = win.parent;
}
return win;
}

var reLoginWin;

reLogin = function (){ getRootWin().reLoginWin=new Ext.Window(....);}//登录窗口

Ext.Ajax.on('requestcomplete', function(conn, response, options, e){ var returnVal=response.responseText; if(!Ext.isEmpty(returnVal)&&returnVal.indexOf('SessionExpired')!=-1) reLogin();});

</script>

<script type="text/javascript">

function getRootWin(){
var win = window;
while (win != win.parent){
win = win.parent;
}
return win;
}

var reLoginWin;

reLogin = function (){ getRootWin().reLoginWin=new Ext.Window(....);}//登录窗口

Ext.Ajax.on('requestcomplete', function(conn, response, options, e){ var returnVal=response.responseText; if(!Ext.isEmpty(returnVal)&&returnVal.indexOf('SessionExpired')!=-1) reLogin();});

</script>




嵌入外部页面时,保持本应用的Session激活

function keepSession(){
Ext.Ajax.request({url : 'keepSession.action'});
}
setInterval("keepSession()",60000);//1分钟调用下



<action name="keepSession" class="com.xx.BaseAction" method="keepSession"/>

public void keepSession(){

}
手把手排查IOMMU映射故障:从内核日志到硬件寄存器调试全指南 本文详细解析了IOMMU映射故障的排查方法,从内核日志分析到硬件寄存器调试,提供了一套完整的诊断流程。涵盖AMD和Intel平台的特定调试技巧,包括ATS协商失败、DMA传输错误等常见问题的解决方案,并介绍了高级调试工具链的搭建与性能优化策略。 阅读详情

相关推荐

【3d打印】基于Klipper的3d打印远程上位机系统(Qt),klipper源码,通信解析,打印参数设置

基于Klipper的3d打印远程上位机系统(Qt),klipper源码,通信解析,打印参数设置(启庞Kp3s V1)

共享IT之美,共创机器未来 3193

让form的action属性只提交数据不跳转页面

一个简单的问题,今天遇到并解决了,所以记录一下。 话不多说上代码: <form action="http://localhost:8080" method="post" enctype="multipart/form-data" accept-charset="utf-8" id="myForm" target="nm_iframe"> <input type="file" name="file" id="file" value="file"> <input t

Frank杰的博客 3588

《供应链金融风控模型设计:多维度数据整合与动态风险预警机制》

注:方案突出供应链金融「三流合一」(资金流、物流、信息流)的风控逻辑,通过多维度数据整合与动态预警,解决传统风控中中小企业信用评估难、链条风险传导监测滞后的问题。◦ 构建供应链拓扑图,计算「核心企业违约对上下游企业的影响系数」(如某电子厂商违约时,其前五大供应商的风险权重自动提升40%)• 区块链应用:将核心企业应付账款上链存证,防止「一票多融」欺诈(如某供应商用同一应收账款在多家银行融资)◦ 财务数据:核心企业审计报告、上下游企业纳税数据(增值税发票频次/金额)

2501_91651383的博客 1550

表单页面提交后不跳转的处理方法

表单页面提交后不跳转、表单域校验提示提交成功,并重置当前页面、实现上传文件多选

hslisz的博客 4455

实战分享:如何用本地替换和插桩调试搞定Kasada最新版x-kpsdk-cd环境检测

本文深入解析Kasada最新版x-kpsdk-cd环境检测机制,提供动态请求拦截、本地替换和函数插桩等实战调试策略。通过Proxy保护破解、关键函数断点调试和环境检测对抗方案,帮助逆向工程师有效应对从280位扩展到294位的加密数组挑战,实现高效补环境调试。

weixin_29251567的博客 572

倾斜摄影数据转换为3DTile格式的方法:基于CesiumLab GIS

通过使用CesiumLab GIS,倾斜摄影数据可以方便地转换为3DTile格式,并在CesiumJS等3D地理信息可视化工具中进行展示和分析。一旦成功导入3DTile数据,就可以在CesiumLab GIS中利用其强大的可视化和分析功能进行进一步的处理。转换完成后,可以将生成的3DTile数据导入到CesiumLab GIS中进行可视化和分析。启动CesiumLab GIS应用程序,并按照界面上的指导导入转换后的3DTile数据。脚本将开始执行,并将倾斜摄影数据转换为3DTile格式。

ObDjango的博客 1076

html只提交表单而不跳转页面

form的action属性是提交数据的url地址,向servlet提交数据的时候,当前页面会跳转到servlet,但如果想在当前页面连续多次提交,那么就希望提交数据后页面不会进行跳转。 解决方法: 在html中添加一个隐藏的iframe,form表单通过target属性链接到这个隐藏的iframe,以此来实现,只提交数据而不发生页面的跳转。 1.在html中添加一个隐藏的iframe <iframe width=0 height=0 frameborder=0 id="myiframe" name=

坏蛋阿土的博客 8739

如何跑通SuperPoint+LightGlue的训练代码使用gluefactory进行训练和评估?

🏆本文收录于专栏,主要记录项目实战过程中所遇到的Bug或因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家!持续更新中,up!up!up!!

**My Coding Family** 1786

Struts2 只执行Action 页面不跳转 AJAX请求 序列化

如题: 今天弄公司主页的时候,有个小需求是在线提问,当然不能跳转到其他页面 $.ajax({ url:'/officeHome_infoSave.so' ,type:'POST' ,data:$(document.online_form).serialize() ,success:f

chengchanglun'Blog 1474

Microsoft Forms功能深度解析:企业数据收集与协作的智能利器

Microsoft Forms是微软365生态中的在线表单工具,支持问卷调查、测验和投票创建,具备拖拽式界面、多题型设计和实时数据分析功能。其核心价值在于易用性、跨平台兼容性以及与Teams、SharePoint等微软服务的深度集成,满足GDPR/HIPAA等合规要求。提供表单创建、权限管理、自动化流程(通过Power Automate)和审计日志等功能,适用于金融、医疗、教育等多行业场景。虽然存在逻辑分支有限等约束,但通过案例证明能显著提升数据收集效率(达70-85%)。使用时需注意许可证配置(Busin

xueyunshengling的博客 9125

Python全栈入门到实战【基础篇 22】生成器与迭代器:底层逻辑与实战场景

Python迭代器与生成器:惰性求值的高效实践 摘要:本文深入解析Python中迭代器和生成器的核心机制与应用场景。迭代器通过实现__iter__()和__next__()方法实现惰性求值,适合处理大数据集和无限序列。生成器作为迭代器的简化实现,通过yield关键字自动实现迭代器协议,代码更简洁。文章详细对比了可迭代对象与迭代器的区别,演示了自定义迭代器和生成器函数的实现方式,并介绍了生成器表达式这一高效替代列表推导式的方案。通过斐波那契数列等实例,展示了惰性求值在内存优化方面的优势,以及生成器在流式数据处

那些看似不起波澜的日复一日,会在某天让你看到坚持的意义 3263

form 避免 action 触发的页面跳转

Form 提交不换页面 action = url 前提 提交表单后,后台返回的是一个html地址,也就是一个html文件 &lt;form id="search" action="/portal/" method="post" &gt; &lt;input type="text" name="username"/&gt; &lt;input type

学习笔记 7121

90. 将 SAP ABAP 内表内容本地导出成 Excel 文件

这里文件扩展名为 csv,全称是 Comma-Separated Values,意思是这种类型的文件内容,由逗号分隔。除了 ASC 之外,另一个可用的选项是 BIN,适用于 PDF,EXE 等二进制文件的导出。支持海量的输入和输出参数,我们这个简单的本地导出场景里,大部分参数都用不上。这个分隔符的添加逻辑,编写在上图红色高亮矩形框内,使用的语法是。本教程有学习者向我提问,询问如何将 ABAP 某某函数的某某输出参数的值,导出成本地 Excel 文件。把这个内表的内容,下载到本地,以本地文件的方式保存。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1743

Struts!Ajax实现执行action不跳转页面

Struts!Ajax实现执行action不跳转页面,同时还有容易错的一个漏洞 这是J2EE小白在做购物车时发现的问题,由于没接触过ajax也是一顿搜 先贴代码如下: function addcart(){ var userAccount = "&lt;s:property value='#session.userAccount'/&gt;"; var tradeName = ...

weixin_44061782的博客 1165

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Struts 2提交form表单执行action后不跳转(ajax)

今日写项目写到一个商品加入购物车功能,原本设计是点击按钮之后,存储数据,并弹出一个div告知用户添加成功,页面不跳转,看似很简单的功能,却在“不跳转”这点上卡住,我不想跳转咋就这么难呢?查了很多资料,知道了要用ajax,因为本人愚钝,并没有能够解决我的小问题,一度想要放弃,特别感谢熊世唯同学不耐其烦的指导,让我解决了这个小难题 本篇博客旨在还没有深入理解ajax的情况下,实现一个提交form表单后不

并非所有流浪者都迷失了自我 5166

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

AJAX 访问action 时 如何让action 只输出结果不跳转

AJAX 访问action 时 如何让action 只输出结果不跳转

深海酷酷鱼的专栏 2605

Liferay 中 struts2 请求 Action

有的时候配置不好的情况下,struts2 不好请求action.下面是一段代码用来请求struts.xml中定义的action

_HuoLeiHu的技术空间 1158

java ajax 页面跳转页面_请问如何用ajax返回一个实体数据并跳转到新页面?

$.ajax({type:"POST",url: //你的请求程序页面随便async:false,//同步:意思是当有返回值以后才会进行后面的js程序。data://请求需要发送的处理数据success:function(msg){if (msg) {//根据返回值进行跳转window.location.href = '你的跳转的目标地址';}扩展资料:关于上述跳转的注意事项1、ajax只接受最后...

weixin_34138585的博客 1588

除了form和ajax外的方式提交Action

不通过form 和ajax 调用action ,提交整个页面  window.location.href = "addAlarmClock.action?entInterNumber=" + entInterNumber ;  再通过Action 转发去调用 查询的Action &lt;action name="addAlarmClock" class="com.h...

steven.pf 658

ASP.NET MVC的 Action跳转方法归纳部分

https://www.cnblogs.com/surfing/p/3542826.html 首先我觉得action的跳转大致可以这样归一下类,跳转到同一控制器内的action和不同控制器内的action、带有参数的action跳转和不带参数的action跳转。 一、RedirectToAction(“Index”);//一个参数时在本Controller下,不传入参数。 二、RedirectTo...

灵活大胖子HDG 的博客 3492

实现dojo中ajax方法跳转页面--xhrPost

在使用dojo的过程中,有些页面时dialog形式显示,但有时候需要将这些dialog直接作为页面跳转,而又不想再写相关页面,直接使用xhrPost方式来将这些写好Action的页面直接在页面显示,使用button关联相关时间,这里命名为test,利用Ajax向后台提交数据,返回相应页面,然后对返回页面做处理,就可以跳转页面了。 test dojo.connect(dojo.byI

xzchenxiao的专栏 4992

使用Struts2+Jquery实现ajax 提交action 不跳转 表单 并返回json类型数据,并使用js添加数据到前端,评论框

一、前端设计 &amp;lt;table class=&quot;table table-striped&quot; id=&quot;tableOne&quot;&amp;gt; &amp;lt;thead&amp;gt; &amp;lt;tr &amp;gt; &amp;lt;th&amp;gt;用户名&amp;lt;/th&

immense的博客 497

java struts2 ajax_java struts2实现ajax调用action实现页面跳转 问题

表单提交可以,不使用ajax想做异步跳转登陆页面,ajax 可以找到action动作 在执行完方法后 return SUCCESS ,struts 不能返回数据回前端。 这个要怎么解决这个问题啊 本人菜鸟一个前端代码:function btnLogin() {$("#btnLogin").click(function() {var username = $("input[name=username...

weixin_39880632的博客 253

Ajax实现调用接口参数传递方法(页面不跳转)

前台页面Login.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> <script type="text/j.

wh445306 2123

MVC一个form内两个submit按钮跳转Controller内不同的Action方法

有次做项目,发现一个问题,不用ajax的话,在一个form里面 怎么写两个提交按钮呢,两个提交按钮跳转到不同的action。通过网页查阅资料,发现一个好用的方法,分享给大家! 后端部分 ###首先新建一个类,类名 MultiButtonAttribute /// &amp;lt;summary&amp;gt; /// 自定义不同按钮选择action /// &amp;lt;/summary&amp;...

weixin_42864782的博客 4234

你不知道的form

<form action="html_form_action.asp" method="get"></form> 1、最常见的就是他的两个属性action和methods action:规定当提交表单时向何处发送表单数据(url) method:用哪种方式发送(post/get)

qq_41818857的博客 631

使用ajax实现form提交

1、常见的form表单提交都是使用submit 直接提交给form表单 中action的地址。 常见的form表单提交 <form:form action="<%=request.getContextPath()%>/login/role_add.do" method="post" modelAttribute="role" > <div class="form-...

非凡的博客 495
上一篇: Ajax的请求在struts2中怎么实现跳转
下一篇: Extjs session 超时问题处理
master3003
博客等级 码龄18年 22粉丝 59原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值