CNET中国旗舰网站

ZDNet China | CNET科技资讯网 | 政府采购 | 行业网站联盟





 
标题: [转贴] 新手AJAX的将查询结果写入XML
mz89757053
版主
Rank: 7Rank: 7Rank: 7


UID 304999
精华 0
积分 6933
帖子 8295
威望 116
ZD币 1002 元
阅读权限 250
注册 2008-3-10
状态 离线
  楼主
发表于 2008-3-18 15:45  资料  个人空间  短消息  加为好友 
开发者在线

新手AJAX的将查询结果写入XML

我是新手,现在模仿网上的AJAX代码实现我自己的功能,我是JSP+AJAX,没有使用struts或是servlet。我处理的过程是传入一个ID,可以得到该ID对应记录的DUTY字段的值。现在遇到2个问题还不能解决:   
  1.在后台处理的JSP页面(假设页面是1.jsp),我将得到的值写如XML,代码如下:   
      //----------------------------------------------------   
      duty   =   "张三";//前面代码略,假设DUTY值为“张三”   
      money   =   100.0;//假设MONEY字段是FLOAT类型   
      response.setContentType("text/xml");//设置返回数据类型为xml格式   
      StringBuffer   buf   =   new   StringBuffer();   
      buf.append("<?xml   version=\"1.0\"   encoding=\"UTF-8\"?>");   
      buf.append("<root>");   
      buf.append("<duty>"   +   duty   +   "</duty>");   
      buf.append("<money>"   +   money+   "</money>");   
      buf.append("</root>");   
      out.print(buf);   
    //---------------------------------------------------   
      前台页面(假设为2.jsp)接收的JAVASCRIPT代码如下:   
      function   parseMessages()     
  {   
  var   duty   =   req.responseXML.getElementsByTagName("duty").firstChild.nodeValue;   
  alert('ok'+duty+'la');   
  }   
      //------------------------------------------------   
  可是返回的值DUTY始终是没有,然而在1.jsp后台页面调试时能够输出正确的DUTY值。   
  2.money是float型,我想可能是XML不支持特殊字符(指小数点),那在AJAX中将如何处理类似的数值呢?   
   
  真诚希望大家能帮我解答一下,非常感谢!!!




顶部
热点频道推荐: C/S开发| 数据库| WEB开发| 嵌入式| 项目管理|
mz89757053
版主
Rank: 7Rank: 7Rank: 7


UID 304999
精华 0
积分 6933
帖子 8295
威望 116
ZD币 1002 元
阅读权限 250
注册 2008-3-10
状态 离线
  沙发
发表于 2008-3-18 15:45  资料  个人空间  短消息  加为好友 
自己搞定了!   
  1.写入XML到缓存,代码如下:   
      response.setContentType("text/xml;charset=UTF-8");   
      response.setHeader("Cache-Control",   "no-cache");   
      response.getWriter().write("<?xml   version=\"1.0\"   encoding=\"UTF-8\"?>");   
      response.getWriter().write("<root>");   
      response.getWriter().write("<duty>"   +   duty   +   "</duty>");   
      response.getWriter().write("<money>"+   money+"</money>");   
      response.getWriter().write("</root>");   
  2.先前调试到FLOAT类型总是出错,以为是XML不能处理小数点之类的特殊字符,现在不存在这个问题了。是可以直接得到的。   
   
  总结:要注意的是XML的结构体语法,根节点是必须要的,就是类似上面的<root></root>里面是没有值的,在<root></root>中分布子节点,是带值的,不能直接在XML下直接是子节点。否则就是错误的XML体。XML是不需要手动创建的,也不需要指定路径,它是存在缓存里面的。   
   
  有好的建议可以跟帖,暂时不结帖,跟帖有分~~~~~~~~~




顶部
热点频道推荐: C/S开发| 数据库| WEB开发| 嵌入式| 项目管理|
 



当前时区 GMT+8, 现在时间是 2009-7-4 11:54

  Powered by Discuz! 5.5.0 © 2001-2007 Comsenz Inc.
Processed in 0.062094 second(s), 3/3 queries

清除 Cookies - 联系我们 - ZDNetChina中文社区 - 无图版