精彩专题推荐:建站之入门课 建站之必修课 建站之关键课 网站价值所在 流量提高专题 css+div 标准 个人网站打造全过程
返回建站学首页
导航:
建站首页 | 网站设计 | 网站开发 | 网站运营 | 网页软件 | 建站指南 | 搜索优化 | 图像处理 | 视频教程 | 书籍教程 | 建站专题
当前位置:首页>网站开发>ajax教程>正文

AJAX开发简略 (第二部分)


来源:柯自聪 时间:06-11-28 点击: 点击这里收藏本文

  body的内容如下:

<input type="button" name="read"
 value="读取XML" onClick="send_request('employees.xml')">
processRequest()方法修改如下:
	// 处理返回信息的函数
    function processRequest() {
        if (http_request.readyState == 4) { // 判断对象状态
            if (http_request.status == 200) { // 信息已经成功返回,开始处理信息
		var returnObj = http_request.responseXML;
		var xmlobj = http_request.responseXML;
		var employees = xmlobj.getElementsByTagName("employee");
		var feedbackStr = "";
		for(var i=0;i<employees.length;i++) { // 循环读取employees.xml的内容
		var employee = employees[i];
		feedbackStr += "员工:" + employee.getAttribute("name");
		feedbackStr += 
" 职位:" + employee.getElementsByTagName("job")[0].firstChild.data;
		feedbackStr +=
 " 工资:" + employee.getElementsByTagName("salary")[0].firstChild.data;
		feedbackStr +=  "\r\n";
				}
				alert(feedbackStr);
            } else { //页面不正常
                alert("您所请求的页面有异常。");
            }
        }
}

  运行一下,看来效果还不错:

7.5.2、选择合适的XML生成方式

  现在的web应用程序往往采用了MVC三层剥离的设计方式。XML作为一种数据保存、呈现、交互的文档,其数据往往是动态生成的,通常由JavaBean转换过来。由JavaBean转换成XML文档的方式有好几种,选择合适的转换方式往往能达到事半功倍的效果。下面介绍两种常用的方式,以便需要的时候根据情况取舍。

  A、类自行序列化成XML
  类自行序列化成XML即每个类都实现自己的toXML()方法,选择合适的API、适当的XML结构、尽量便捷的生成逻辑快速生成相应的XML文档。显然,这种方式必须要求每个类编写专门的XML生成代码,每个类只能调用自己的toXML()方法。应用诸如JDOM等一些现成的API,可以减少不少开发投入。例子9是一个利用JDOM的API形成的toXML()方法。

  例子9 -- toXml() 的 JDOM 实现 -- Employ类的toXml()方法:

public Element toXml() {  
	Element employee = new Element(“employee”);
	Employee.setAttribute(“name”,name);
	Element jobE = new Element(“job”).addContent(job);
	employee.setContent(jobE);
	Element salaryE = new Element(“salary”).addContent(salary);
	employee.setContent(salaryE);
	return employee;
}

  JDOM提供了现成的API,使得序列化成XML的工作更加简单,我们只需要把toXML()外面包装一个Document,然后使用XMLOutputter把文档写入servlet就可以了。toXml()允许递归调用其子类的toXML()方法,以便生成包含子图的XML文档。

  使用类自行序列化成XML的方式,要每个类都实现自己的toXML()方法,而且存在数据模型与视图耦合的问题,即要么为每个可能的视图编写独立的toXML()方法,要么心甘情愿接收冗余的数据,一旦数据结构或者文档发生改变,toXML()就要做必要的修改。

  B、页面模板生成XML方式
  一般的,可以采用通用的页面模板技术来生成XML文档,这个XML文档可以符合任何需要的数据模型,供AJAX灵活的调用。另外,模板可以采用任何标记语言编写,提高工作效率。下面是一个采用Struts标签库编写的XML文档,输出之前提到的employees.xml

  Sample8_2.jsp

<%@ page contentType="application/xml; charset=gb2312" import="Employee"%>
<%@ page import="java.util.Collection,java.util.ArrayList"%>
<?xml version="1.0"?>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>
<%
Employee em1 = new Employee();
em1.setName("J.Doe");
em1.setJob("Programmer");
em1.setSalary("32768");
Employee em2 = new Employee();
em2.setName("A.Baker");
em2.setJob("Sales");
em2.setSalary("70000");
Employee em3 = new Employee();
em3.setName("Big Cheese");
em3.setJob("CEO");
em3.setSalary("100000");
Collection employees = new ArrayList();
employees.add(em1);
employees.add(em2);
employees.add(em3);
pageContext.setAttribute("employees",employees);
%>
<employees>
<logic:iterate name="employees" id="employee">
	<employee name="<bean:write name='employee' property='name'/>">
		<job><bean:write name="employee" property="job"/></job>
		<salary><bean:write name="employee" property="salary"/></salary>
	</employee>
</logic:iterate>
</employees>
9 7 3 1 2 3 4 5 6 7 8 9 10 4 8 :

  把此文章收藏到:          
广而告之
文章搜索
  • Google JZxue.Com

关于我们 | 联系我们 | 友情链接 | 网站地图
Copyright © 2005 - 2006 建站学 All rights reserved.