js代码:
- JScript code
Ext.onReady(function(){ var myform = new Ext.FormPanel({ title:'myform', el:'myform', height:400, width:800, items:[{ xtype:'textfield', name:'uname', fieldLabel:'uname' }] }); myform.render(); myform.form.load({ waitTitle : "请稍候", waitMsg : " 正在加载表单数据,请稍候......", url : '123.jsp', success : function(form, action) { }, failure : function(form, action) { Ext.MessageBox.alert(' 加载失败', action.result.errors); } }); });
123.jsp
- Java code
String data = "{success:true,data:{ uname:'name'}}" ; out.print(data);
为什么加载不到数据?
------解决方案--------------------
如果你在123.jsp里添加了html页面的标签,那么在响应客户端请求时产生一个与jsp同构的html页面,它里面除了包含out.print输出的数据外,还有jsp本身的html结构,你用firedebug下,会看到JSON格式不是你想要的格式!
去掉jsp中的html标签即可,这时即产生完整的json格式数据。
然后使用js中的eval函数,将接收到的json字符串转化为json对象,格式如下(设该字符串是str),
var jsondata = eval('('+str+')'),直接把str作为参数不行