日期:2014-05-16  浏览次数:20598 次

formpanel加载后台数据的问题
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作为参数不行