EXTJS AJAX 从后台取 XML 数据 在页面上展示
页面JS
function getAllAreaInfos()
{
var areaName = "";
Ext.Ajax.request({
method: 'POST',
url: 'allAreaInfos',
params: {"areaName":areaName},
waitMsg: '数据更新中,请稍后...',
success: function(response,options){
var xmlDoc = response.responseXML;
if(xmlDoc!=null)
{
var ais = xmlDoc.getElementsByTagName("Areainfo");
if(ais!=null&&ais.length>0)
{
for(var i=0;i<ais.length;i++)// DB
{
var asId = (ais[i].getElementsByTagName("id")[0].childNodes[0].nodeValue); // 第i个areaInfos的id
var asName = (ais[i].getElementsByTagName("name")[0].childNodes[0].nodeValue); // 第i个areaInfos的名字
var allCapacity = (ais[i].getElementsByTagName("allCapacity")[0].childNodes[0].nodeValue); // 第i个areaInfos的总装机容量
//document.getElementById(asName).innerHTML="";
document.getElementById(asName).innerHTML=allCapacity;//得到的数据在页面上展示
}
}
}
},
failure: function(response,options){
Ext.Msg.alert("信息提示", "获取数据库数据出错,请稍后再试!");
},
autoAbort:false
});
}
action
public String getAllAreaInfos() {
try {
List<Areainfo> list = null;
if(areaName!=null&&!areaName.equalsIgnoreCase("null")&&areaName.trim().length()>0)
{
list = mapInfos.findAllAreaInfos(this.subStringAreaName(areaName));
}
else
list = mapInfos.findAllAreaInfos(null);
response.setContentType("text/xml;charset=utf-8");
response.setCharacterEncoding("utf-8");
PrintWriter pw = null;
pw = response.getWriter();
StringBuffer sb = new StringBuffer();
sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
sb.append("<Items>");
if(list==null)
{
sb.append("<Areainfo>");
sb.append("<id>").append("no").append("</id>");
sb.append("</Areainfo>");
}
else
{
for (int i = 0; i < list.size(); i++)
{
Areainfo v = list.get(i);
sb.append("<Areainfo>");
sb.append("<id>").append(v.getId()).append("</id>");
sb.append("<name>").append(v.getName()).append("</name>");
sb.append("<allCapacity>").append(v.getAllcapacity()).append("</allCapacity>");
sb.append("</Areainfo>");
}
}
sb.append("</Items>");
String xmlDBTree = sb.toString();
pw.print(xmlDBTree);
pw.flush();
pw.close();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}