4

こんにちは、ページングのある extjs 画面に取り組んでおり、リクエストで使用されるメソッドは HTTP POST 動詞で応答する必要があります。

すべての読み取り呼び出しが投稿になるように、ストアを構成しました。extjs はリクエスト ペイロードのクエリ文字列を渡すだけであることに気付き、ストアの params ロードを使用する場合と同じように、パラメーターを分離することが可能であると考えました。

そのため、クエリ文字列 start = 0 & page = 1 & limit = 20 の代わりに、リクエスト ペイロードに {params: {start: 0, page: 1, limit: 20}} のようなものを含めることは可能でしょうか。

RESTEasy で Extjs 4.2 と Java を使用しています。

4

1 に答える 1

0

このための組み込み機能はありませんが、ストアのプロキシを次のように拡張できます。

Ext.define('Ext.ux.proxy.ModifiedAjax', {
    extend: 'Ext.data.proxy.Ajax',
    alias: 'proxy.modifiedajax',

    defaultParams: 'param',
    removeDefaultParams: true,

    buildRequest: function(operation) {
        var me = this,
            request,
            defaultParams = me.getParams(operation);

        me.extraParams = me.extraParams || {};
        if (me.defaultParams && defaultParams) {
            me.extraParams[me.defaultParams] = me.applyEncoding(defaultParams);
        }

        var params = operation.params = Ext.apply({}, operation.params, me.extraParams);
        if (me.removeDefaultParams != true) {
            Ext.applyIf(params, defaultParams);
        }

        request = new Ext.data.Request({
            params   : params,
            action   : operation.action,
            records  : operation.records,
            operation: operation,
            url      : operation.url,
            proxy: me
        });
        request.url = me.buildUrl(request);
        operation.request = request;

        return request;
    }
});

typeストアでは、プロキシをに設定する必要があります'modifiedajax'

于 2013-10-08T10:31:18.360 に答える