怎样防止数据重复提交
来源:互联网 发布:sam源码 编辑:程序博客网 时间:2024/04/29 18:23
怎样在struts2不使用拦截器,如何防止表单重复提交呢?实现方法如下
1.通过action跳转到表单填写页面,往session放一个随机生成的值,然后放入session
public String execute() throws Exception {
// 向session中放置一个值
ActionContext actionContext = ActionContext.getContext();
Map session = actionContext.getSession();
session.put("session_value", Math.random() + "");
return SUCCESS;
}
2.在表单填写页面加上接收session值的隐藏域,sub是定义在action里面的一个属性,提供get set方法即可
<input type="hidden" name="sub" value="${session_value}"/>
3.在action提交的方法中判断页面提交过来的sub是否不为空,并且等于从session中取出的session_value的值
如果满足,先移除session里的那个值,再执行提交表单操作;如果不满足,就是重复提交,不会提交表单
public String cbApplyFromSubmit() throws Exception {
// 将页面hidden提交的值和session中的值比较
ActionContext actionContext = ActionContext.getContext();
Map session = actionContext.getSession();
String obj = (String) session.get("session_value");
if (sub != null && sub.equals(obj)) {
session.remove("session_value");
// 保存数据
chBusiness.saveCBApplyForm(changeApplyFormBO);
return SUCCESS;
} else {
return "invalid";
}
}
1.通过action跳转到表单填写页面,往session放一个随机生成的值,然后放入session
public String execute() throws Exception {
// 向session中放置一个值
ActionContext actionContext = ActionContext.getContext();
Map session = actionContext.getSession();
session.put("session_value", Math.random() + "");
return SUCCESS;
}
2.在表单填写页面加上接收session值的隐藏域,sub是定义在action里面的一个属性,提供get set方法即可
<input type="hidden" name="sub" value="${session_value}"/>
3.在action提交的方法中判断页面提交过来的sub是否不为空,并且等于从session中取出的session_value的值
如果满足,先移除session里的那个值,再执行提交表单操作;如果不满足,就是重复提交,不会提交表单
public String cbApplyFromSubmit() throws Exception {
// 将页面hidden提交的值和session中的值比较
ActionContext actionContext = ActionContext.getContext();
Map session = actionContext.getSession();
String obj = (String) session.get("session_value");
if (sub != null && sub.equals(obj)) {
session.remove("session_value");
// 保存数据
chBusiness.saveCBApplyForm(changeApplyFormBO);
return SUCCESS;
} else {
return "invalid";
}
}
- 怎样防止数据重复提交
- 怎样防止浏览器刷新重复提交数据?
- 怎样防止浏览器刷新重复提交数据?
- 怎样防止浏览器刷新重复提交数据?
- 怎样防止浏览器刷新重复提交数据?
- 怎样防止浏览器刷新重复提交数据
- 怎样防止浏览器刷新重复提交数据(F5,右键刷新)
- 防止重复提交数据
- 防止数据重复提交
- 防止表单数据重复提交
- 防止 F5重复提交数据
- Spring MVC防止数据重复提交(防止二次提交)
- Spring MVC防止数据重复提交(防止二次提交)
- 如何防止用户重复提交数据
- ASP.NET防止数据重复提交
- Asp.Net防止刷新重复提交数据
- Asp.Net防止刷新重复提交数据
- asp.net防止重复提交数据
- Application Session与Cookie
- VS2005/2008连接SQL登录失败
- SQL Server 2005数据库日志文件损坏的情况下如何恢复数据库
- 步步为营学习android,步步惊喜之android基础篇-布局学习3之代码布局3
- VS2008连接SQL 2005数据库文件
- 怎样防止数据重复提交
- Linux子进程对父进程资源“写时拷贝”
- [笔记][Java 4 Android][001~006] Java4android 环境配置、变量、基本数据类型
- 10-22数据库 复习
- CGContext坐标变换
- C++ 类的继承,子类以及之类的对象 对父类成员函数的访问权限
- 深入理解android消息处理机制
- 用户 '' 登录失败。该用户与可信 SQL Server 连接无关联
- 常见c语言编译错误解析