1

我想使用 Ext.Direct 提交表单,并且我遵循文档中存在的所有指南仍然收到这个奇怪的错误

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

我找到了深入框架的答案。
我需要使用以下代码并在构造函数中定义 api,因为我猜这个特定的 intialConfig 不会自动采用

这是代码

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

在这里要注意的一件事。

如果您使用的是 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 回答