1

ドキュメントにあるすべてのガイドラインに従ってExt.Directとiamを使用してフォームを送信したいのですが、この奇妙なエラーが発生します

Error: Ext.data.Connection.setOptions(): No URL specified

これは私のフォームのJavaScriptコードです

Ext.define('LOGIN.view.SignIn', {
    extend: 'Ext.form.Panel',
    alias: 'widget.signin',
    title: 'Sign-In',
    items: [{
        xtype: 'textfield',
        name: 'UserName',
        fieldLabel: 'UserName',
        allowBlank: 'false'
    }, {
        xtype: 'textfield',
        name: 'Password',
        fieldLabel: 'Password',
        allowBlank: 'false',
        inputType: 'password'
    }],
    buttons: [{
        text: 'Sign-In',
        handler: function () {
            this.up('form').getForm().submit({});
        }
    }, {
        text: 'Sign-Up -->',
        disabled: true,
        handler: function () {
            this.up('#LoginPanel').getLayout().setActiveItem(1);
        }
    }],
    api: {
        submit: LogIn.SignIn
    }
})

何を変更すればよいですか?

4

2 に答える 2

2

フレームワークを掘り下げて答えを見つけました。
この特定のinitalConfigは自動的に取得されないと思うので、次のコードを使用してコンストラクターでAPIを定義する必要があります

これがコードです

Ext.define('LOGIN.view.SignIn', {
    extend: 'Ext.form.Panel',
    alias: 'widget.signin',
    title: 'Sign-In',
    constructor: function (config) {
        Ext.applyIf(config, {
            // defaults for configs that should be passed along to the Basic form constructor go here
            api: {
                submit:LogIn.SignIn
            }
        });
        this.callParent(arguments);
    },
    items: [{
        xtype: 'textfield',
        name: 'UserName',
        fieldLabel: 'UserName',
        allowBlank: 'false'
    }, {
        xtype: 'textfield',
        name: 'Password',
        fieldLabel: 'Password',
        allowBlank: 'false',
        inputType: 'password'
    }],
    buttons: [{
        text: 'Sign-In',
        handler: function () {
            this.up('form').getForm().submit();
        }
    },
        {
            text: 'Sign-Up -->',
            disabled: true,
            handler: function () {
                this.up('#LoginPanel').getLayout().setActiveItem(1);
            }
        }]
})
于 2012-06-22T14:53:21.257 に答える
0

ここで注意すべきことが1つあります。

extdirectspringを使用している場合は、サーバー側のメソッドに次のアノテーションを付ける必要があります。

@ExtDirectMethod(ExtDirectMethodType.FORM_POST)
public ExtDirectFormPostResult doStuff(AddAttachmentRequest request)
{
    return null;
}

ExtDirectFormPostResultも使用する必要があります。そうしないと、うまくいきません。

通常のextdirectメソッドを使用する場合、ファイルデータは送信されません。

また、もう一方の端に必要なタイプは、MultipartFileたとえば次のようになります。

public class AddAttachmentRequest {

    private long id;
    private MultipartFile file;

    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    public MultipartFile getFile() {
        return file;
    }

    public void setFile(MultipartFile file) {
        this.file = file;
    }
}
于 2014-07-11T11:26:12.147 に答える