打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
jsp提交form 但不跳转页面

jsp提交form 但不跳转页面


知道ajax能做,但又不知道具体该怎么写。
希望有详细点的示例

while (rs.next()) {
<form name="<%=formname%>" action="index.jsp" method="post">
用户名:<input type="text" name="uid" value="<%=ZGH%>">
域名:<input   type="text" name="domain_name" value="lzy.edu.cn">
密码:<input   type="text" name="pass" value="<%=OAMM%>">
重输密码:<input  type="text" name="confirm_pass" value="<%=OAMM%>">
<input type="submit">
document.<%=formname%>.submit();
}
每次遍历出一个form表单 就把内容提交到里面的内容到index.jsp 但提交后并不让页面跳转到index.jsp

------------------------------------------------------------------------------------------------------------------
问题补充:
antiwise 写道
Java代码  
  1. xmlHttp就是普通的ajax对象  
  2. function ajaxSubmitForm(aform,tourl){  
  3.         var eles  = aform.elements;  
  4.         var xml='<?xml version="1.0" encoding="UTF-8"?><form>';  
  5.         for(var i=0,ilen=eles.length;i<ilen;i++){  
  6.             if(!eles[i].name||eles[i].disabled==true)continue;  
  7.             if(eles[i].type=='text'||eles[i].type=='textarea'||eles[i].type=='select-one'||eles[i].type=='hidden'||eles[i].type=='password'||((eles[i].type=='radio'||eles[i].type=='checkbox')&& eles[i].checked))  
  8.             {  
  9.                 xml+='<'+eles[i].name+'>'+swapStr(eles[i].value)+'</'+eles[i].name+'>';  
  10.             }  
  11.             if(eles[i].type=='select-multiple')  
  12.             {  
  13.                 var opts=eles[i].options;  
  14.                 for(var j=0,jlen=opts.length;j<jlen;j++){  
  15.                     if(!opts[j].selected)continue;  
  16.                     xml+='<'+eles[i].name+'>'+opts[j].value+'</'+eles[i].name+'>';  
  17.                 }  
  18.             }  
  19.         }  
  20.         xml+='</form>';  
  21.         xmlHttp.open('post',aform.getAttributeNode('action').value,true);  
  22.         xmlHttp.onreadystatechange=function (){  
  23.             if(xmlHttp.readyState!=4||xmlHttp.status!=200)return;  
  24.             var str=xmlHttp.responseText;  
  25.             alert(str);  
  26.             if(tourl)window.location.href=tourl;  
  27.             else{  
  28.                 window.returnValue=true;  
  29.                 window.close();  
  30.             }  
  31.         }  
  32.         xmlHttp.send(xml);  
  33.     }  
  34.       
  35.     function swapStr(str)  
  36.     {  
  37.         if(!str)return '';  
  38.         str=str.replace(/&/g,'&');  
  39.         str=str.replace(/</g,'<');  
  40.         str=str.replace(/>/g,'>');  
  41.         str=str.replace(/'/g,''');  
  42.         str=str.replace(/"/g,'"');  
  43.         return str;  
  44.     }  
  45. 服务器端  
  46. private Map<String,String[]> xmlToMap(HttpServletRequest request) throws DocumentException, IOException{  
  47.         Map<String,String[]> map=new HashMap<String,String[]>();  
  48.         SAXReader reader = new SAXReader();  
  49.         Document doc = reader.read(request.getInputStream(),"UTF-8");  
  50.         Element root = doc.getRootElement();  
  51.         List<Element> es=root.elements();  
  52.         HashSet<String> keys=new HashSet<String>();  
  53.         for(Element e:es)keys.add(e.getName());  
  54.         int i=0;  
  55.         for(String key:keys){  
  56.             es=root.elements(key);  
  57.             String[] vals=new String[es.size()];  
  58.             for(Element e:es)vals[i++]=e.getText();  
  59.             i=0;  
  60.             map.put(key, vals);  
  61.         }  
  62.         if(false)printMap(map);  
  63.         return map;  
  64.     }  
  65.       
  66.     private void printMap(Map<String,String[]> map){  
  67.         StringBuffer sbf=new StringBuffer();  
  68.         for(String key:map.keySet()){  
  69.             sbf.append(key).append(":{");  
  70.             for(String val:map.get(key)){  
  71.                 sbf.append("\"").append(val).append("\",");  
  72.             }  
  73.             sbf.append("}\n");  
  74.         }  
  75.         Debug.print(sbf.toString());  
  76.     }  
  77.   
  78. private void printMessage(HttpServletResponse response,String message){  
  79.         try {  
  80.             response.setContentType("text/html;charset=utf-8");  
  81.             PrintWriter writer=response.getWriter();  
  82.             writer.write(message);  
  83.             writer.close();  
  84.         } catch (IOException e) {  
  85.             Debug.print(e);  
  86.         }  
  87.     }  
  88.       
  89.     public ActionForward ece(ActionMapping mapping,ActionForm form, HttpServletRequest request, HttpServletResponse response)  
  90.     throws IOException, ServletException{  
  91.         String message="操作成功!";  
  92.         try{  
  93.             Map<String, String[]> map=xmlToMap(request);  
  94.             //业务逻辑  
  95.         }catch (SQLException e) {  
  96.               }finally{  
  97.                     printMessage(response,message);  
  98.         }           return null;  
  99. }  

绝对吐血奉献了 公司机密

没看明白 能按照我上面的两个form表单做一个么 谢谢了

------------------------------------------------------------------------------------------------------------------
问题补充:
antiwise 写道
不好意思刚才没看清楚你的需求 但是你的需求很奇怪
依你的意思无非是将本页面信息同时通知到另外一个页面,这个和ajax无关,因为你完全不需要客户端参与 你要做的就是用session 存贮当前信息 然后在下个jsp页面取出即可

他们给了我个html 里面有个form 我在里面添加数据然后提交他们就能得到数据了 只是我现在要向他们提交的数据比较多 有无数个冲数据库遍历出来的form 我需要一个一个的向他们提交

该问题已经关闭: 超过15天由系统自动关闭,悬赏平分给所有参与回答的会员

回答

Java代码  
  1. xmlHttp就是普通的ajax对象  
  2. function ajaxSubmitForm(aform,tourl){  
  3.         var eles  = aform.elements;  
  4.         var xml='<?xml version="1.0" encoding="UTF-8"?><form>';  
  5.         for(var i=0,ilen=eles.length;i<ilen;i++){  
  6.             if(!eles[i].name||eles[i].disabled==true)continue;  
  7.             if(eles[i].type=='text'||eles[i].type=='textarea'||eles[i].type=='select-one'||eles[i].type=='hidden'||eles[i].type=='password'||((eles[i].type=='radio'||eles[i].type=='checkbox')&& eles[i].checked))  
  8.             {  
  9.                 xml+='<'+eles[i].name+'>'+swapStr(eles[i].value)+'</'+eles[i].name+'>';  
  10.             }  
  11.             if(eles[i].type=='select-multiple')  
  12.             {  
  13.                 var opts=eles[i].options;  
  14.                 for(var j=0,jlen=opts.length;j<jlen;j++){  
  15.                     if(!opts[j].selected)continue;  
  16.                     xml+='<'+eles[i].name+'>'+opts[j].value+'</'+eles[i].name+'>';  
  17.                 }  
  18.             }  
  19.         }  
  20.         xml+='</form>';  
  21.         xmlHttp.open('post',aform.getAttributeNode('action').value,true);  
  22.         xmlHttp.onreadystatechange=function (){  
  23.             if(xmlHttp.readyState!=4||xmlHttp.status!=200)return;  
  24.             var str=xmlHttp.responseText;  
  25.             alert(str);  
  26.             if(tourl)window.location.href=tourl;  
  27.             else{  
  28.                 window.returnValue=true;  
  29.                 window.close();  
  30.             }  
  31.         }  
  32.         xmlHttp.send(xml);  
  33.     }  
  34.       
  35.     function swapStr(str)  
  36.     {  
  37.         if(!str)return '';  
  38.         str=str.replace(/&/g,'&');  
  39.         str=str.replace(/</g,'<');  
  40.         str=str.replace(/>/g,'>');  
  41.         str=str.replace(/'/g,''');  
  42.         str=str.replace(/"/g,'"');  
  43.         return str;  
  44.     }  
  45. 服务器端  
  46. private Map<String,String[]> xmlToMap(HttpServletRequest request) throws DocumentException, IOException{  
  47.         Map<String,String[]> map=new HashMap<String,String[]>();  
  48.         SAXReader reader = new SAXReader();  
  49.         Document doc = reader.read(request.getInputStream(),"UTF-8");  
  50.         Element root = doc.getRootElement();  
  51.         List<Element> es=root.elements();  
  52.         HashSet<String> keys=new HashSet<String>();  
  53.         for(Element e:es)keys.add(e.getName());  
  54.         int i=0;  
  55.         for(String key:keys){  
  56.             es=root.elements(key);  
  57.             String[] vals=new String[es.size()];  
  58.             for(Element e:es)vals[i++]=e.getText();  
  59.             i=0;  
  60.             map.put(key, vals);  
  61.         }  
  62.         if(false)printMap(map);  
  63.         return map;  
  64.     }  
  65.       
  66.     private void printMap(Map<String,String[]> map){  
  67.         StringBuffer sbf=new StringBuffer();  
  68.         for(String key:map.keySet()){  
  69.             sbf.append(key).append(":{");  
  70.             for(String val:map.get(key)){  
  71.                 sbf.append("\"").append(val).append("\",");  
  72.             }  
  73.             sbf.append("}\n");  
  74.         }  
  75.         Debug.print(sbf.toString());  
  76.     }  
  77.   
  78. private void printMessage(HttpServletResponse response,String message){  
  79.         try {  
  80.             response.setContentType("text/html;charset=utf-8");  
  81.             PrintWriter writer=response.getWriter();  
  82.             writer.write(message);  
  83.             writer.close();  
  84.         } catch (IOException e) {  
  85.             Debug.print(e);  
  86.         }  
  87.     }  
  88.       
  89.     public ActionForward ece(ActionMapping mapping,ActionForm form, HttpServletRequest request, HttpServletResponse response)  
  90.     throws IOException, ServletException{  
  91.         String message="操作成功!";  
  92.         try{  
  93.             Map<String, String[]> map=xmlToMap(request);  
  94.             //业务逻辑  
  95.         }catch (SQLException e) {  
  96.               }finally{  
  97.                     printMessage(response,message);  
  98.         }           return null;  
  99. }  

绝对吐血奉献了 公司机密
antiwise (资深程序员) 2010-03-12
不好意思刚才没看清楚你的需求 但是你的需求很奇怪
依你的意思无非是将本页面信息同时通知到另外一个页面,这个和ajax无关,因为你完全不需要客户端参与 你要做的就是用session 存贮当前信息 然后在下个jsp页面取出即可
antiwise (资深程序员) 2010-03-12
我不知道为什么你要一个一个提交Form
这样每个Form都用Ajax提交的话 不知道会不会出现什么问题 ,因为如果Form过多 势必会同时向服务器发送过多包
其实一个Form完全可以满足你的要求
你把遍历出来的元素放在一个Form里 一起提交
antiwise (资深程序员) 2010-03-12
while (rs.next()) {
<form name="<%=formname%>" action="index.jsp" method="post">
用户名:<input type="text" name="uid" value="<%=ZGH%>">
域名:<input   type="text" name="domain_name" value="lzy.edu.cn">
密码:<input   type="text" name="pass" value="<%=OAMM%>">
重输密码:<input  type="text" name="confirm_pass" value="<%=OAMM%>">
<input type="submit">
<script type="text/javascript">
document.<%=formname%>.submit(); </script>
}
lovewhzlq (CTO) 2010-03-16
可以间接利用form来提交不可以吗?以为知道了action=index.jsp

例如:直接提交.....index.jsp?uid=11&domain_name=2&pass=123...

不可以吗?如无穷多可以拼个传加上去
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
JSP+Servlet 实现:理财产品信息管理系统
4种无刷新页面的技术
Ajax动态更新页面
AJAX+jsp无刷新验证码实例
Struts2中实现自定义分页标签
ajax实现动态网页静态化
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服