2

サーブレットをCSVファイルとして使用してデータをダウンロードする必要があります。ExtJS4.1からAjaxリクエストを介してサーブレットにナビゲーションツリーをクリックしてパラメータを渡します。ajaxが強制できないため、パラメータをサーブレットに渡す別の方法はありますか。ダウンロードするための開く/保存ダイアログ?ナビゲーションツリー自体の子をクリックするだけでパラメータを渡す必要があります。誰かが私を助けてくれますか?

解決策を探して、隠されたIframeのように見つけました。これを自分のものに適応させる方法がわかりませんか?

よろしくお願いします。

4

1 に答える 1

1

名前空間内で定義されたヘルパーを使用します。そして、あなたが終わった後にそれを取り除くことを忘れないでください。

helper.util.HiddenForm = function(url,fields){
    if (!Ext.isArray(fields))
        return;
    var body = Ext.getBody(),
        frame = body.createChild({
            tag:'iframe',
            cls:'x-hidden',
            id:'hiddenform-iframe',
            name:'iframe'
        }),
        form = body.createChild({
            tag:'form',
            cls:'x-hidden',
            id:'hiddenform-form',
            action: url,
            target:'iframe'
        });

    Ext.each(fields, function(el,i){
        if (!Ext.isArray(el))
            return false;
        form.createChild({
            tag:'input',
            type:'text',
            cls:'x-hidden',
            id: 'hiddenform-' + el[0],
            name: el[0],
            value: el[1]
        });
    });

    form.dom.submit();

    return frame;
}

次のように使用します

helper.util.HiddenForm('my/realtive/path', [["fieldname","fieldValue"]]);

サーバーがダウンロードで応答すると、保存ウィンドウがポップアップ表示されます。

于 2012-09-13T10:49:17.640 に答える