一个静态的xml文件,一个使用servlet动态生成的xml文件
但是读取静态的没有问题
动态的就不显示数据
用ie访问两个xml文件格式返回都是一个德行的这里把java的代码和ext的代码都贴出来Servlet的代码public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { response.setContentType("text/xml");
response.setCharacterEncoding("utf-8");

Document doc = new Document();
Element root = new Element("dataset");
doc.setRootElement(root);
for(int i=1 ; i<=50 ; i++){
Element item = new Element("item");
root.addContent(item);
item.addContent(new Element("id").setText(String.valueOf(i)));
item.addContent(new Element("name").setText("姓名" + i));
item.addContent(new Element("sex").setText(Math.random()>0.5?"男":"女"));
item.addContent(new Element("res").setText("备注" + i));
}

PrintWriter out = response.getWriter();
XMLOutputter outp = new XMLOutputter();
        Format format = Format.getPrettyFormat();
        format.setEncoding("utf-8");
        outp.setFormat(format);
        outp.output(doc, out);
out.flush();
out.close();
}
Ext的代码<script language="javascript">
Ext.onReady(
function(){
var sm = new Ext.grid.CheckboxSelectionModel();
var cm = new Ext.grid.ColumnModel([
new Ext.grid.RowNumberer(),
sm,
{header : '编号' , dataIndex : 'id'},
{header : '姓名' , dataIndex : 'name'},
{header : '性别' , dataIndex : 'sex',renderer : changeSex},
{header : '备注' , dataIndex : 'res'}
]);
cm.defaultSortable = true; //可以排序

var ds = new Ext.data.Store({
proxy : new Ext.data.HttpProxy({url:'http://localhost:8080/ExtTest/GetXMLData.xml'}),
reader : new Ext.data.XmlReader({
record : 'item'
},[
{name : 'id'},
{name : 'name'},
{name : 'sex'},
{name : 'res'}
])
});

function changeSex(value){
if(value=='男'){
return"<span style='color:green;font-weight:bold;'>男</span>";
}else{
return"<span style='color:red;font-weight:bold;'>女</span>";
}
}

var grid = new Ext.grid.GridPanel({
el : 'grid-example',
ds : ds,
cm : cm,
width : 500,
height : 300,
sm : sm,
title : '测试窗口',
bbar: new Ext.PagingToolbar({
pageSize: 10,
store: ds,
displayInfo: true,
displayMsg: '显示第 {0} 条到 {1} 条记录,一共 {2} 条',
emptyMsg: "没有记录"
})
});

ds.load({params:{start:0,limit:10}});
grid.render(); function cellclick(grid , rowIndex , columnIndex , e){
var record = grid.getStore().getAt(rowIndex);
var fieldName = grid.getColumnModel().getDataIndex(columnIndex);
if(fieldName == 'name'){
var data = record.get(fieldName);
Ext.MessageBox.alert('消息','当前选中的数据是:' + fieldName + "=" + data);
}
}


var rightClick = new Ext.menu.Menu({
id : 'rightClickCont',
items : [
{
id : 'rMenu1',
handler : rMenu1Fn,
text : '删除'
},
{
text : '选择'
}
]
});
function rightClickFn(grid , rowindex , e){
e.preventDefault();
rightClick.showAt(e.getXY());
}

function rMenu1Fn(){
Ext.MessageBox.alert('单击右键' , '删除');
}
grid.addListener('cellclick' , cellclick);
grid.addListener('rowcontextmenu' , rightClickFn);
}
);
</script>