Ajax实践

1,从ibatis返回xml文档 

< select  id = "queryAllUser" resultClass = "xml" xmlResultName = " USER " >
        
select  umid  as  id, 
                   name, 
                   gender, 
                   age 
           
from  ajax_user
</ select >

2,controller中指定response编码    经过23两步就可以解决中文的乱码问题了,如果统一用UTF-8编码格式,只需在2步中

 response.setContentType( " text/xml;charset=GBK " );

3,controller中指定xml文档编码

users  =  users.replaceAll( " UTF-8 " " GBK " );

 

    response.setContentType("text/xml;charset=UTF-8");

    就可以了,先初步总结为xml文档的编码格式和response的字符集要统一。

4,return null

不要指定ModelAndView,这通常是个页面,指定为null后,可以直接使用response写你要返回的xml文档内容

5,页面解析xml文档

 

function  filUserList(xmldoc)  {
  
// alert(xmldoc.getElementsByTagName("date")[0].childNodes[0].nodeValue);
  var userArray = xmldoc.getElementsByTagName("USER");
  
var userArrayLen = userArray.length;        
  
var insertData = '<table border=1><tr><th>用户ID</th><th>用户名</th><th>性别</th><th>年龄</th></tr>';
   
  
for (var i=0; i<userArrayLen; i++){
    insertData 
+= '<tr><td>' + userArray[i].getElementsByTagName("ID")[0].firstChild.data + '</td><td>' 
        
+ userArray[i].getElementsByTagName("NAME")[0].firstChild.data + '</td><td>' 
        
+ userArray[i].getElementsByTagName("GENDER")[0].firstChild.data + 
        
'</td><td>' + userArray[i].getElementsByTagName("AGE")[0].firstChild.data + '</td></tr>';
  }

  insertData 
+= '</table>';
  document.getElementById(
"users").innerHTML = insertData;        
}

xml文档示例:

<? xml version="1.0" encoding="GBK" ?> < USER >< ID > Max </ ID >< NAME > Eric </ NAME >< GENDER > M </ GENDER >< AGE type="Gregorian" > 24 </ AGE ></ USER >

 

常用的方法示例:
· getElementsByTagName
    userArray xmldoc.getElementsByTagName("USER"), 返回数组
· firstChild.data
    等同于 childNodes[0].nodeValue ,后者通用性更好一些
    userArray[0]. firstChild.data = ric
· tagName
    userArray[0].tagName = AGE
· getAttribute
    userArray[0].getElementsByTagName("AGE"). GetAttribute("type") = Gregorian

 

相关网页:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值