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

 

相關網頁:
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章