ajax跨页面提交表单
来源:互联网 发布:嘉兴微知电子有限公司 编辑:程序博客网 时间:2024/06/09 22:59
前面提到过重复提交表单问题,处理token口令校验、重定向之外,还有一种经常使用到的方法就是新页面处理表单提交,完成后关闭当前页面,并刷新之前发送请求的页面。
这里使用了artDialog.js
1、文件结构
2、user.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@ taglib uri="/struts-tags" prefix="s"%><%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <title>user列表</title> <meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"> <script type="text/javascript" src="/MySSH2/jquery-1.7.js"></script><script type="text/javascript" src="/MySSH2/artDialog.js?skin=default"></script><script type="text/javascript"> function openA(){ window.open("/MySSH2/user/manage_addUI"); } </script> </head> <body> <br/> <a href="<s:url action="manage_addUI" namespace="/user"/>">添加用户</a> <a href="javascript:void(0)" onclick="openA()">添加用户</a> <br/> 用户列表:<br/> <s:iterator value="#request.users"> id:<s:property value="id"/><br/> name:<s:property value="name"/><br/> </s:iterator> </body></html>3、userAdd.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@ taglib uri="/struts-tags" prefix="s"%><%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <title>用户添加</title> <meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"> <script type="text/javascript" src="/MySSH2/jquery-1.7.js"></script> <script type="text/javascript"> function AddUser(){ var submitData = $('#userForm').serialize(); console.log(submitData); $.ajax({type : "post",url : "/MySSH2/user/manage_add",cache : false,data: submitData, dataType : 'json',success : function(result) {<span style="white-space:pre"></span>if(result.success){ window.opener.art.dialog({time:2,content:'保存成功'}); setTimeout(function(){window.opener.location.reload();},3);}else{<span style="white-space:pre"></span> window.opener.art.dialog({time:2,content:'保存失败'}); setTimeout(function(){window.opener.location.reload();},3);}window.close();},error : function(XMLHttpRequest, textStatus,errorThrown) {alert("error");}}); } </script> </head> <body> <s:form id="userForm" action="manage_add" namespace="/user" method="post"> 用户名:<s:textfield name="user.name"/><br/><s:token></s:token> <input type="button" value="保存" onclick="AddUser()"/> </s:form> </body></html>4、UserManageAction.java
package com.myssh2.action;import java.io.IOException;import java.io.PrintWriter;import javax.annotation.Resource;import javax.servlet.ServletException;import org.apache.struts2.ServletActionContext;import org.springframework.context.annotation.Scope;import org.springframework.stereotype.Controller;import com.myssh2.bean.User;import com.myssh2.service.UserService;import com.opensymphony.xwork2.ActionContext;import com.opensymphony.xwork2.ActionSupport;@Controller @Scope("prototype")public class UserManageAction extends ActionSupport{@Resource UserService userService;private User user;public User getUser() {return user;}public void setUser(User user) {this.user = user;}public String addUI(){return "add";}public void add() throws ServletException, IOException{ ServletActionContext.getResponse().setContentType("text/html;charset=utf-8"); PrintWriter out = ServletActionContext.getResponse().getWriter(); try { userService.addUser(user); ActionContext.getContext().put("message", "保存成功"); out.write("{\"success\":true}");} catch (Exception e) { e.printStackTrace(); out.write("{\"success\":false,\"msg\":\"error\"}");}}}页面效果
提交表单时使用$('#userForm').serialize();序列化表单数据
window.opener.art.dialog({time:2,content:'保存成功'});则是返回使用window.open的页面(或者理解为父页面),并调用artDialog插件的定时关闭dialog
setTimeout(function(){window.opener.location.reload();},3);使用定时器刷新使用window.open的页面(或者理解为父页面),dialog和reload的时间设置问题需重新调整。
0 0
- ajax跨页面提交表单
- ajax不跳转页面提交表单
- 实现ajax提交表单,页面不跳转
- ajax提交表单页面刷新很快
- STRUTS 跨页面表单提交
- DWZ ajax提交表单后重定向整个页面
- ajax表单登陆页面提交后跳转问题
- Ajax提交Form表单页面仍会刷新问题
- ajax提交form表单后页面自动刷新
- ajax提交表单后,页面仍被刷新
- 页面ajax提交form 表单 以及后台接收
- Ajax表单提交实例
- Ajax表单提交实例
- Ajax表单提交实例
- ajax提交表单
- ajax提交form表单
- Ajax表单提交乱码
- ajax提交表单
- java线程池系列(1)-ThreadPoolExecutor实现原理
- hibernate3.3.2学习笔记---多对多双向
- 为什么要用smarty模板引擎
- EventBus上车指南
- HDU 4348To the moon 主席树 + 区间更新
- ajax跨页面提交表单
- nginx1.10.1学习笔记
- 基本分页、请求分页储存管理方式
- xargs的原理剖析及用法详解
- 集合类浅谈(1)
- 简易mvc框架配置类和日志类的简单实现
- js继承的实现
- 1095. Cars on Campus
- swift判断app第一次启动