第三方的AJAX框架submitActionFrom
来源:互联网 发布:经典sql语句大全 编辑:程序博客网 时间:2024/05/14 19:42
下面来说一下工作中用到的一个第三方的AJAX框架,试想一下,如果你想在一个from表单中输入几个参数,下面的table中就能够异步刷新出数据,看起来并没有刷新过页面,而第二个表单在排版上可以很自由,这是怎么做到的呢,我们可以用到一个第三方的AJAX框架submitActionFrom。不多说,下面就是代码.
页面代码:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title><script language="javascript" src="${pageContext.request.contextPath }/js/function.js"></script><script type="text/javascript" src="${pageContext.request.contextPath }/js/pub.js"></script><script type="text/javascript" src="${pageContext.request.contextPath }/js/jquery-1.11.3.min.js"></script><script type="text/javascript"> function test() { //say(); submitActionWithForm('from2', '${pageContext.request.contextPath}/submitAction.do', 'from1'); }</script></head><body> <form id="from1" name="from1" method="post"> <a>你好</a> <input type="text" name="username" value="dddd"> <input name="button" type="button" onclick="test()" value="点击异步刷新"> <input name="password" type="password" value="123123"> </form> <form id="from2" name="from2" method="post"> <a href="${pageContext.request.contextPath }/toPageList1.do">用户列表</a> </table> </form></body></html>
后台代码很简单:
@RequestMapping(value="submitAction.do",method=RequestMethod.POST ) public String submitAction(HttpServletRequest request){ System.out.println("已进入后台"); String username= (String) request.getParameter("username"); System.out.println(username); request.setAttribute("msg", "呵呵呵"); return "forward:page1.jsp"; }
最后是引入js文件,pub.js.
如此以来的效果就是我们把整个page1.jsp的内容作为参数覆盖了from2表单中的内容,
在日常的开发中挺有用的,大家不妨仔细看一下pub.js:
function Pub(){ } function submit(formindex) { document.forms[formindex].submit();}function formsubmitAction(formindex,action) { document.forms[formindex].action=action; document.forms[formindex].submit();}function submitform(formname){ var theform =document.forms[formname]; theform.submit();}function reset(formindex){ document.forms[formindex].reset();}////////////////////////////////////////////////////////////////////////////////function checkAll(parent, itemName){ var parentbox = document.getElementsByName(itemName); for (var i=0; i<parentbox.length; i++){ parentbox[i].checked = parent.checked; }}function checkItem(child, allName){ var all = document.getElementsByName(allName)[0]; if(!child.checked) all.checked = false; else { var childbox = document.getElementsByName(child.name); for (var i=0; i<childbox.length; i++) if(!childbox[i].checked) return; all.checked = true; }}function getAllCheckItemValue(storename,removevalue){var obj_all = document.getElementsByTagName("INPUT");var all_value="";for(i=0;i<obj_all.length;i++){if(obj_all[i].type=="checkbox") if(obj_all[i].checked ){ if(obj_all[i].value!=removevalue) all_value=all_value+obj_all[i].value+","; }}var obj = document.getElementById(storename);obj.value=all_value;}function getAllCheckItemValueWithRemove(storename,removevalue){var obj_all = document.getElementsByTagName("INPUT");var all_value="";for(i=0;i<obj_all.length;i++){if(obj_all[i].type=="checkbox") if(obj_all[i].checked ){ if(obj_all[i].value.indexOf("NULL")==-1){ if(obj_all[i].value!=removevalue) all_value=all_value+obj_all[i].value+","; } }}var obj = document.getElementById(storename);obj.value=all_value;}///////////////////////////////////////////////////////////////////////////////////////////////////////function copyRole(paramname,action){var obj_all = document.getElementsByTagName("INPUT");var value="";for(i=0;i<obj_all.length;i++){if(obj_all[i].type=="radio") if(obj_all[i].checked ){ value = obj_all[i].value; }} if(value==""){ return false;} document.forms[0].action=action+"?"+paramname+"="+value; document.forms[0].submit();}/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////创建Ajax引擎function newXMLHttpRequest() { var xmlreq = false; if (window.XMLHttpRequest) { xmlreq = new XMLHttpRequest(); } else if (window.ActiveXObject) { try { xmlreq = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e1) { try { xmlreq = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e2) { alert(e2); } } } return xmlreq;}/**req:表示Ajax引擎eleid:表示表单Form2的名称responseXmlHandler:表示请求数据的方法体handleResponse**/function getReadyStateHandler(req, eleid,responseXmlHandler) { return function () { if (req.readyState == 4) { if (req.status == 200) { responseXmlHandler(req.responseText,eleid); } else { alert("HTTP error: "+req.status); return false; } } }}function getStatisticReadyStateHandler(req, eleid,responseXmlHandler,noteId) { return function () { if (req.readyState == 4) { if (req.status == 200) { responseXmlHandler(req.responseText,eleid); } else { alert("HTTP error: "+req.status); return false; } }else{ var ele11 =document.getElementById(noteId); ele11.innerHTML="Loading Data"; } }}/**data:通过ajax的调用服务器响应的数据结果eleid:表示表单Form2的名称*/function handleResponse(data,eleid){ var ele =document.getElementById(eleid); alert(ele); ele.innerHTML = data;}function submitAction(domId,action){ var req = newXMLHttpRequest(); var handlerFunction = getReadyStateHandler(req, domId,handleResponse); req.onreadystatechange = handlerFunction; req.open("POST", action, false); req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); req.send(null);}function submitActionWithNote(domId,action,noteId){ var req = newXMLHttpRequest(); var handlerFunction = getStatisticReadyStateHandler(req, domId,handleResponse,noteId); req.onreadystatechange = handlerFunction; req.open("POST", action, true); req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); req.send(null);}//组织Form1表单中的数据function getParams2Str(sForm){ var strDiv=""; try { //var objForm=document.forms[sForm]; var objForm=document.getElementById(sForm); if (!objForm){ return strDiv; } var elt,sName,sValue; for (var fld = 0; fld < objForm.elements.length; fld++) { elt = objForm.elements[fld]; sName=elt.name; sValue=elt.value; if(fld==objForm.elements.length-1) strDiv=strDiv + sName+"="+sValue+""; else strDiv=strDiv + sName+"="+sValue+"&"; } alert(strDiv); } catch (ex) { return strDiv; } return strDiv;}/*** 传递3个参数 * 参数一:domId:表示表单中Form2的名称 * 参数二:action:访问的URL地址 * 参数三:sForm:表示表单中Form1的名称*/function submitActionWithForm(domId,action,sForm){ alert(action); //创建Ajax引擎 var req = newXMLHttpRequest(); //处理Ajax的事件处理函数,接收服务器响应的数据 var handlerFunction = getReadyStateHandler(req, domId,handleResponse); req.onreadystatechange = handlerFunction; //打开连接,false:同步,必须等待值加载完成之后,才往后执行 req.open("POST", action, false); req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); //发送请求,向服务器发送数据(表单Form1中的数据) var str = getParams2Str(sForm); req.send(str);}
0 0
- 第三方的AJAX框架submitActionFrom
- Ajax框架与第三方控件
- 常用的第三方框架
- 常用的第三方框架
- 第三方框架的使用
- 第三方框架的记录
- 第三方UIImageView框架SDWebImage的使用
- 第三方框架SDWebImage的使用
- 下一步研究的第三方框架
- 第三方框架ZipArchive的使用
- IOS常用的第三方框架
- 第三方框架Masonry的基本使用
- iOS常用的第三方框架
- iOS中常用到的第三方框架
- [iOS]一些第三方框架的使用
- IOS中常见的第三方框架
- 安卓中常用的第三方框架
- 第三方框架管理cocoapods的使用
- HTML页面地址栏参数传递与获取
- JAVA动态(可变)参数
- 使用PopupWindow完成各种dialog
- [UDP] C#UDP入门|Socket通信|UdpClient通信
- 【百金轻】:震荡区间是否会有新波动
- 第三方的AJAX框架submitActionFrom
- unity移动平台阴影解决方案
- 微信、手Q、QQ浏览器userAgent记录
- 2416开发记录五: misc设备驱动
- 3791: 作业 思路题 DP
- 内存优化
- GDKOI2014Day2T2
- ADB Shell命令行
- Servlet:用ServletOutputStream.write方法在html显示中文