2012-06-22 3 views
1

я хочу представить форму с помощью Ext.Direct и РМКО следуя всем рекомендациям, присутствующие в документации по-прежнему им получать эту странную ошибкуExtJS отправки формы с помощью Ext.DIrect

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

это Java-код моего форма

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 
    } 
}) 

Что я должен изменить?

ответ

2

Я узнал ответ, копающийся в каркасе.
мне нужно использовать следующий код и определить апи в конструкторе, потому что я думаю, этот конкретный 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); 
      } 
     }] 
}) 
0

Одна вещь, чтобы высматривать здесь ,

Если вы используете extdirectspring вам нужно будет аннотировать сервера метод на стороне с:

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

Также обязательно использовать ExtDirectFormPostResult Aswell. Если вы этого не сделаете, просто не получится.

Если вы используете обычный метод 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; 
    } 
} 
Смежные вопросы