dom方式ajax

来源:互联网 发布:空间模型处理债券数据 编辑:程序博客网 时间:2024/05/20 19:31

 //js代码

/* 实例化xmlhttp对象 */
function XMLHTTP(){
    var xmlhttp=false;
    try {
         xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    }catch(e){
      try {
          xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
      }catch(e){
          xmlhttp = false;
      }
   }
   if(!xmlhttp && typeof XMLHttpRequest!='undefined') {
     xmlhttp = new XMLHttpRequest();
   }
   return xmlhttp;
}

/** 回显额度名称 */
function getLimitNameByTransLimitCode(){

 var doc;
 var result;
 var node;
 var sErrorMsg;
 
 if(document.form1.TransLimitCode.value.trim() == ''){
  return;
 }

 var xmlHttp=XMLHTTP();
 var xmlDoc=new ActiveXObject("Msxml.DOMDocument");
 var xmlText="<?xml version=/"1.0/"?>"+
          "<Confirm>"+
          "<TransLimitCode>" + document.form1.TransLimitCode.value + "</TransLimitCode>"+
          "</Confirm>";
 xmlDoc.loadXML(xmlText);
   
 xmlHttp.open("POST","<%=request.getContextPath()%>/control/getLimitNameByTransLimitCode",false);
 xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
 xmlHttp.send(xmlDoc);
 if (xmlHttp.status == 200){
  result=xmlHttp.responseText;
  //alert(result);
  var xmldoc = new ActiveXObject("MSXML2.DOMDocument");
  xmldoc.loadXML(result);
   
  node=xmldoc.selectNodes("//errorMsg");
     for(var i=0;i<node.length;i++){
   var oNode=node[i];
   sErrorMsg=oNode.text;
  }

  if("" != sErrorMsg){
   alert(sErrorMsg);
   document.form1.LimitName.value = '';
   return false;
  }else{
   document.form1.LimitName.value = xmldoc.selectNodes("//LimitName")[0].text;
  }
   
  }else{
   alert('失败,服务器无响应');
   window.returnValue = "";
   window.close();
  }
  
  return true;
}


//java 代码
/**
 * 根据额度控制代码取额度名称
 * @param request
 * @param response
 * @return
 * @throws Exception
 */
public static String getLimitNameByTransLimitCode(HttpServletRequest request, HttpServletResponse response) throws Exception {
 
 String errorMsg = "";
 String transLimitCode = "";
 
 Map limit = null;
 
 try{
  //首先解析ajax流、通过Jdom取参数
  SAXBuilder sb = new org.jdom.input.SAXBuilder();
  Document doc = sb.build(request.getInputStream());
  Element root = doc.getRootElement();
  transLimitCode = root.getChild("TransLimitCode").getText();
 
  //取额度控制内容
  limit = getBankLimitMgr(transLimitCode);
  
  StringBuffer xmlText = new StringBuffer();
  xmlText.append("<root>").append("/n");
  
  if(null==limit){
   errorMsg = transLimitCode+":认购额度控制编号不存在!";
  }else{
   xmlText.append("<LimitName>").append(DealString.dealNull(limit.get("LimitName"))).append("</LimitName>").append("/n");
  }
  xmlText.append("<errorMsg>").append(errorMsg).append("</errorMsg>").append("/n");
  xmlText.append("</root>").append("/n");
  
  response.setContentType("text/html;charset=UTF-8");
  PrintWriter out = response.getWriter();
  out.write(xmlText.toString());
  out.flush();
  out.close();
 }catch(LCUserException e){
  LcDebug.logError("取额度名称数据库异常" + e);
  return "error";
 }catch(Exception e){
  LcDebug.logError("拷贝产品信息异常" + e);
  return "error";
 }
 
 return "success";
}

原创粉丝点击