ASYNCHRONOUS JAVASCRIPT AND XML
2009-11-26 19:44
134 查看
JS层 // 定义一个全局 var xmlHttp; // 返回一个xmlHttpRequest对象 function createXMLHttpRequest() { if (window.XMLHttpRequest) { xmlHttp = new XMLHttpRequest(); } else { if (window.ActiveXObject) { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } } return xmlHttp; } // 在动作触发点调用此方法,要传参 function searchBwd(dirid){ var id = dirid; createXMLHttpRequest(); if (xmlHttp) { // 设置url路径。执行JAVA层方法的路径。如带参,URL中的&参数为其页面相关FORM BEAN中的字段,如下面的“singledirid”。 var url = "addBWDVocAction.do?actionType=GetDirBwd&singledirid=" + id; // 异步更新 xmlHttp.open("POST", url, true); xmlHttp.onreadystatechange = callback;// 此方法在下面。 xmlHttp.send(); } else { alert("Can not create the request,please check your browser!!"); } } function callback() { if (xmlHttp.readyState == 4) { if (xmlHttp.status == 200) { setBwdValue();// 此处开始执行在页面上画数据列表的方法 // 如类似于先存储,再查询展现新结果时,在此callback方法处再引入查询方法 } else { window.location = "admin_addbwd.jsp";// 指定结果页面 } } } // 页面上画数据列表 function setBwdValue() { // 下面这定义三个变量,在其后的FOR循环里取值,来源是JAVA层(如STRUTS里的ACTION)输出的XML流,后面给出。 var bwdid; var bwdName_zh; var bwdName; var xmlDoc = xmlHttp.responseXML; var root = xmlDoc.getElementsByTagName("xml").item(0); for (var i = 0; i < root.childNodes.length; i++) { var child = root.childNodes[i].childNodes; // 下面给以上三个自定义的变量赋值: bwdid = child[0].firstChild.nodeValue; bwdName_zh = child[1].firstChild.nodeValue; bwdName = child[2].firstChild.nodeValue; // 先判断三个变量里的值是否为空 if (bwdid != "" && bwdName_zh != "" && bwdName != "") { //添加一行 var newTr = dirbwdTbl.insertRow(); //添加一列 var newTd0 = newTr.insertCell(); //设置列内容和属性 newTd0.innerHTML = "<label style="/" mce_style="/""width: 10px/"></label>" + "<input type=/"radio/" id=/"chkId/" name=/"chkId/" onclick=/"getRadioValue()/" value=/"" + bwdid + "/" class=/"boxradio/" />" + "<label style="/" mce_style="/""width: 10px/"></label>" + "<input type=/"text/" id=/"dirbwdnamezh/" disabled size=65 value=/"" + bwdName_zh + "/" class=/"boxinput/" />" + "<label style="/" mce_style="/""width: 10px/"></label>" + "<input type=/"text/" id=/"dirbwdname/" disabled size=65 value=/"" + bwdName + "/" class=/"boxinput/" />";//注意此处结束时的分号 } } }
JAVA层 // 此方法中查询方法为SSH中一种方式,具体查询数据方法视具体环境而定。 public ActionForward doGetDirBwd(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { AdminAddBWDVocForm aavf = (AdminAddBWDVocForm) form; BWdBO bwdbo = new BWdBO(); bwdbo.setDirid(aavf.getSingledirid()); // System.out.println("/ndirid= " + aavf.getSingledirid()); VOPackage vo = new VOPackage(); // 根据目录ID查询词汇 vo.setActionType(Constant.QUERY_BWD); vo.setData(bwdbo); List bwdLst = new ArrayList(); try { bwdLst = (List) this.getProcessor().process(vo); // 开始将查询出的数据组织成XML流 ServletOutputStream out = response.getOutputStream(); response.setContentType("text/xml;charset=UTF-8");// 添加XML中文字符支持 StringBuffer xml = new StringBuffer(); xml.append("<?xml version=/"1.0/" encoding=/"UTF-8/"?>");// 添加XML中文字符支持 xml.append("<xml>"); for (int i = 0; i < bwdLst.size(); ++i) { BWdBO bo = (BWdBO) bwdLst.get(i); // XML节点名 xml.append("<dirbwd>"); // 三个XML子元素,依次为0、1、2。诸如此类。 xml.append("<bwdid>" + bo.getId() + "</bwdid>"); xml.append("<bwdName_zh>" + bo.getBwdName_zh() + "</bwdName_zh>"); xml.append("<bwdName>" + bo.getBwdName() + "</bwdName>"); xml.append("</dirbwd>"); } xml.append("</xml>"); // 输出XML流(JS可以取得) out.print(xml.toString()); // System.out.println("/nout.toString: " + out.toString()); // System.out.println("/nxml.toString: " + xml.toString()); out.close(); } catch (Exception e) { System.out.println("获取DIRBWD时异常:" + e.getStackTrace()); } return null; }
相关文章推荐
- ajax(Asynchronous JavaScript and XML) 异步js或者xml
- Asynchronous JavaScript and XML(Ajax)
- Asynchronous JavaScript Technology and XML (AJAX)
- (续三)Asynchronous JavaScript and XML (AJAX) with Java 2 Enterprise Edition
- 前后端数据交互ajax(Asynchronous Javascript And XML)
- ajax(Asynchronous JavaScript And XML)
- AJAX(Asynchronous JavaScript and XML)
- AsynchronousJavaScriptandXML(AJAX)withJava2Enterpri…
- Asynchronous JavaScript and XML (AJAX) with Java 2 Enterprise Edition
- Asynchronous JavaScript and XML (AJAX) Introduction
- Asynchronous JavaScript And XML (Ajax)由浅入深
- AJAX工作原理及其优缺点 1.什么是AJAX? AJAX全称为“Asynchronous JavaScript and XML”(异步JavaScript和XML),是一种创建交互式网页应用的网页
- AJAX简介 (缩写:Asynchronous JavaScript and XML)
- AJAX(Asynchronous JavaScript And XML,异步JavaScript + XML)
- AJAX (Asynchronous JavaScript and XML)
- Ajax(Asynchronous JavaScript and XML)在JQuery中的应用
- Ajax_Asynchronous javascript and XML
- AJAX(Asynchronous JavaScript And XML)
- Asynchronous JavaScript and XML(聊一聊ajax)
- Asynchronous JavaScript Technology and XML (AJAX)