请教1个蔡鸟问题,JSP如何返回生成1个XML,可以给AJAX里的JS调用?

faxiwe 2009-09-21 12:45:37
刚刚接触AJAX

A.JSP里面,用到JS代码,把数值传到B.JSP 中,B.JSP进行和服务段数据库的连接.
然后B.JSP应该返回1个XML 给A.JSP里的JS代码看结果

可我不太清楚B.JSP如何才能返回生成1个XML
也不太清楚A.JSP如何才能调用B.JSP生成的XML

求指教 ,最好详细些 ~先谢拉
...全文
69 点赞 收藏 8
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
faxiwe 2009-09-22
貌似读去的时候没有问题

在JS里面
http_request.open("GET","testAjax.xml",true); //这里先试1试 读去静态的XML

如果是这样直接读取静态的XML文件时没有问题的

但是去读取 B。JSP 生成的XML,也就是说如果把语句换成
http_request.open("GET","b.jsp",true);

就会出现读不出来的情况 。。。郁闷

JSP有没有修改XML 的语句呢??
回复
faxiwe 2009-09-22
我希望生成的XML 是这样的:

str.append(" <?xml version='1.0' encoding='utf-8'?> <root>");
str.append("<info>true</info>");
str.append("</root>");

可在A.JSP里的JS中


var xmlDOM = http_request.responseXML;
// 取得XML文档的根
var root = xmlDOM.documentElement;
alert(root);

的时候,显示 root 为null

不知道是XML没有创建成功
还是JS里面读取不成功...
回复
faxiwe 2009-09-22
楼上非常感谢!~

我现在要从JS里面读去B.JSP里声称的XML
用这样的语句对么?

var xmlobj = http_request.responseXML; //http_request 是 XMLHttpRequest 的实例

这样可以得到那个XML么?
我怎么才能从里面读去内容呢?
回复
faxiwe 2009-09-22
谢谢帮助
直接访问B.JSP XML创建没有成功

看了本参考书,找到方法了.无论如何谢谢1楼的热心帮助!
回复
xiaozhangnima 2009-09-22
最好不用xml,解析为json比较好
不过学习了
回复
BeenZ 2009-09-22
比如你生成的xml名字叫testAjax.xml

这样读


var xmlDom; //XML DOM object
loadXML = function(fileRoute){
xmlDoc=null;
if (window.ActiveXObject){
xmlDoc = new ActiveXObject('Msxml2.DOMDocument');
xmlDoc.async=false;//这里设置true就是异步
xmlDoc.load(fileRoute);
}
return xmlDoc;
}
xmlDom=loadXML(xmlFile).xmlDom.documentElement;//这里得到了xml对象,你可以进行解析

回复
BeenZ 2009-09-21
上面例子中构造xml用的参数是从js发送过来的
也就是js---->服务器--->js的过程,最后js得到的就是xml了
回复
BeenZ 2009-09-21
B.JSP 可以用java语句构造出一个xml
比如

List list=biz.getList();
if(null!=list){
StringBuffer str=new StringBuffer();
str.append(" <?xml version='1.0' encoding='utf-8'?> <menu>");
str.append(" <first name="HOME" url="index.jsp"> </first> ");
str.append(" <first name="ABOUT US" url="jsp/about.jsp">");
for (int i = 0; i <list.size(); i++) {
Model model=(Model)list.get(0);
str.append(" <second name=\""+model.getNmae()+"\" url=\""model.getUrl()+"\" />");
}
str.append(" <first name="CONTACT US" url="/wisdom/jsp/contact.jsp">
</first> ");
str.append(" </menu>");
response.setContentType("text/xml;charset=utf-8");
try {
response.getWriter().print(str.toString());
response.flushBuffer();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}


由于是在后台服务器做的,在js中只要向服务器发送一个http请求,
然后服务器接收到请求以后返还这个xml
最后JS接收到以后对xml做解析
回复
相关推荐
发帖
Ajax
创建于2007-09-28

5.2w+

社区成员

Web 开发 Ajax
申请成为版主
帖子事件
创建了帖子
2009-09-21 12:45
社区公告
暂无公告