extjsダウンロード機能を実現

6024 ワード

長い間悩んで、やっとextjsのダウンロード機能を実現して、実はダウンロードの原理はとても簡単で、インタフェースに1つのボタンをあげて、ボタンにバックグラウンドactionを触発させて、住所をフロントに返します.具体的には以下のように実現する.

//extjs ,

var btn_out_user = new Ext.Button({  text : ' excel',  iconCls : 'icon-del',  handler : function() {  Ext.Msg.show({   title:' ',      msg: ' ?',      buttons: Ext.Msg.YESNO,      width : 250,      fn: function(btn){    if(btn=='yes'){              Ext.MessageBox.wait(' , ...', ' ');                Ext.Ajax.request({              url : 'outShopInfoAction.action',       success : function(resp, ops){        var obj = Ext.decode(resp.responseText);             window.parent.document.location = obj.path;//        Ext.MessageBox.updateProgress(1); //                Ext.MessageBox.hide();  //        ds_user.load({params : {start : 0,limit : 20}});       },       failure : function() {        Ext.MessageBox.updateProgress(1);                Ext.MessageBox.hide();          Ext.Msg.show({         title : ' ',         msg : ' !',         width : 200,         buttons : Ext.Msg.OK,         icon : Ext.Msg.ERROR        });      }     });    }      },       icon: Ext.MessageBox.QUESTION  });  } });


 public void out() throws Exception{      String outPath = "../upload/test.xls";    this.getResponse().getWriter().write("{'path' : '"+outPath+"'}");  }

 
 
        json     ,      ,      path,    :String outPath = "../upload/test.xls"。          ,      ,        。

var obj = Ext.decode(resp.responseText); window.parent.document.location = obj.path;

       ,             。