Java Sencha touch使用jersey创建更新删除

Java Sencha touch使用jersey创建更新删除,java,jersey,sencha-touch-2,crud,Java,Jersey,Sencha Touch 2,Crud,我是新来的senchatouch。我需要在整个jerseyjava中创建、删除和更新成员记录。这是我的密码 view.js Ext.define('bluebutton.view.BlueButton.testing', { extend: 'Ext.form.Panel', xtype: 'testing', requires: [ 'bluebutton.view.BlueButton.TransactionList', 'bluebu

我是新来的
senchatouch
。我需要在整个
jersey
java中创建、删除和更新成员记录。这是我的密码

view.js

    Ext.define('bluebutton.view.BlueButton.testing', {
    extend: 'Ext.form.Panel',
    xtype: 'testing',
       requires: [

    'bluebutton.view.BlueButton.TransactionList',
    'bluebutton.view.BlueButton.MemberPopUp',
     'bluebutton.view.BlueButton.MemberDetail',
     'bluebutton.store.BlueButton.MemberList',

    ],
    config: {
     id:'register',
        items :[

              {
                    xtype: 'textfield',
                    name: 'name',
                    label: 'Name'
                },
                {
                    xtype: 'emailfield',
                    name: 'email',
                    label: 'Email'
                },

                 {
                    xtype: 'button',
                    text: 'Send',
                    handler: function(button) {
                        var form = Ext.getCmp('register');
                          values = form.getValues();



        var myStore= new Ext.data.Store({
            model: 'bluebutton.model.BlueButton.MemberList'
        });

            var newModel = Ext.ModelMgr.create({ 'memberId': 1,
                        'name': 2,
                        'imgUrl': 3
                    }, 'bluebutton.model.BlueButton.MemberList');

            myStore.add(newModel);

            myStore.sync();


                    }
                }


        ],


   }

});
Ext.define('bluebutton.model.BlueButton.MemberList', {
    extend: 'Ext.data.Model',
    config: {
        idProperty: 'memberModel',
        fields: [
            { name: 'memberId' },
            { name: 'name' },
            { name: 'imgUrl' },
            { name: 'age' },
            { name: 'address' },
            { name: 'pointAvalaible' },
            { name: 'lastVisited' },
        ],


  proxy: {
            type: 'ajax',
            actionMethods: {
                create : 'POST',
                read   : 'POST', // by default GET
                update : 'POST',
                destroy: 'POST'
            },
            url: 'http://localhost:8080/RESTFulExample/rest/json/metallica/testingj'
        },


    }

});
Ext.define('bluebutton.store.BlueButton.MemberList', {
    extend: 'Ext.data.Store',
   requires: [
              'bluebutton.model.BlueButton.MemberList'
    ],

    config: {
        grouper: {
            groupFn: function (record) {
                return record.get('name')[0];
            }
        },


           model :'bluebutton.model.BlueButton.MemberList',
           storeId :'memberStore',
           autoLoad:false,
           pageSize: 5,
           clearOnPageLoad: false, 

        data: [


        ]
    }
});
Model.js

    Ext.define('bluebutton.view.BlueButton.testing', {
    extend: 'Ext.form.Panel',
    xtype: 'testing',
       requires: [

    'bluebutton.view.BlueButton.TransactionList',
    'bluebutton.view.BlueButton.MemberPopUp',
     'bluebutton.view.BlueButton.MemberDetail',
     'bluebutton.store.BlueButton.MemberList',

    ],
    config: {
     id:'register',
        items :[

              {
                    xtype: 'textfield',
                    name: 'name',
                    label: 'Name'
                },
                {
                    xtype: 'emailfield',
                    name: 'email',
                    label: 'Email'
                },

                 {
                    xtype: 'button',
                    text: 'Send',
                    handler: function(button) {
                        var form = Ext.getCmp('register');
                          values = form.getValues();



        var myStore= new Ext.data.Store({
            model: 'bluebutton.model.BlueButton.MemberList'
        });

            var newModel = Ext.ModelMgr.create({ 'memberId': 1,
                        'name': 2,
                        'imgUrl': 3
                    }, 'bluebutton.model.BlueButton.MemberList');

            myStore.add(newModel);

            myStore.sync();


                    }
                }


        ],


   }

});
Ext.define('bluebutton.model.BlueButton.MemberList', {
    extend: 'Ext.data.Model',
    config: {
        idProperty: 'memberModel',
        fields: [
            { name: 'memberId' },
            { name: 'name' },
            { name: 'imgUrl' },
            { name: 'age' },
            { name: 'address' },
            { name: 'pointAvalaible' },
            { name: 'lastVisited' },
        ],


  proxy: {
            type: 'ajax',
            actionMethods: {
                create : 'POST',
                read   : 'POST', // by default GET
                update : 'POST',
                destroy: 'POST'
            },
            url: 'http://localhost:8080/RESTFulExample/rest/json/metallica/testingj'
        },


    }

});
Ext.define('bluebutton.store.BlueButton.MemberList', {
    extend: 'Ext.data.Store',
   requires: [
              'bluebutton.model.BlueButton.MemberList'
    ],

    config: {
        grouper: {
            groupFn: function (record) {
                return record.get('name')[0];
            }
        },


           model :'bluebutton.model.BlueButton.MemberList',
           storeId :'memberStore',
           autoLoad:false,
           pageSize: 5,
           clearOnPageLoad: false, 

        data: [


        ]
    }
});
Store.js

    Ext.define('bluebutton.view.BlueButton.testing', {
    extend: 'Ext.form.Panel',
    xtype: 'testing',
       requires: [

    'bluebutton.view.BlueButton.TransactionList',
    'bluebutton.view.BlueButton.MemberPopUp',
     'bluebutton.view.BlueButton.MemberDetail',
     'bluebutton.store.BlueButton.MemberList',

    ],
    config: {
     id:'register',
        items :[

              {
                    xtype: 'textfield',
                    name: 'name',
                    label: 'Name'
                },
                {
                    xtype: 'emailfield',
                    name: 'email',
                    label: 'Email'
                },

                 {
                    xtype: 'button',
                    text: 'Send',
                    handler: function(button) {
                        var form = Ext.getCmp('register');
                          values = form.getValues();



        var myStore= new Ext.data.Store({
            model: 'bluebutton.model.BlueButton.MemberList'
        });

            var newModel = Ext.ModelMgr.create({ 'memberId': 1,
                        'name': 2,
                        'imgUrl': 3
                    }, 'bluebutton.model.BlueButton.MemberList');

            myStore.add(newModel);

            myStore.sync();


                    }
                }


        ],


   }

});
Ext.define('bluebutton.model.BlueButton.MemberList', {
    extend: 'Ext.data.Model',
    config: {
        idProperty: 'memberModel',
        fields: [
            { name: 'memberId' },
            { name: 'name' },
            { name: 'imgUrl' },
            { name: 'age' },
            { name: 'address' },
            { name: 'pointAvalaible' },
            { name: 'lastVisited' },
        ],


  proxy: {
            type: 'ajax',
            actionMethods: {
                create : 'POST',
                read   : 'POST', // by default GET
                update : 'POST',
                destroy: 'POST'
            },
            url: 'http://localhost:8080/RESTFulExample/rest/json/metallica/testingj'
        },


    }

});
Ext.define('bluebutton.store.BlueButton.MemberList', {
    extend: 'Ext.data.Store',
   requires: [
              'bluebutton.model.BlueButton.MemberList'
    ],

    config: {
        grouper: {
            groupFn: function (record) {
                return record.get('name')[0];
            }
        },


           model :'bluebutton.model.BlueButton.MemberList',
           storeId :'memberStore',
           autoLoad:false,
           pageSize: 5,
           clearOnPageLoad: false, 

        data: [


        ]
    }
});
Jersey.java

     @POST
     @Path("/testingj")
//   @Consumes("application/x-www-form-urlencoded")
     @Consumes(MediaType.APPLICATION_JSON)
     public Response too(MultivaluedMap<String, String> form) {
     return Response.status(201).entity(form).build();
 }

请指导我解决方案

您之所以得到此响应,是因为浏览器对跨源请求的安全约束,这意味着从javascript中,您只能调用同一域中的URL。由于您的服务运行在8080个帖子,所以浏览器从其他领域考虑它。 跨域请求有多种方式,您可以从中了解:

  • JsonP
  • 在服务器上启用CORS
  • 但由于移动设备的安全约束不同于桌面设备的浏览器约束,所以即使在浏览器中不起作用,同样的东西也可能在移动设备中起作用。有关更多详细信息,请查看:


    在您的情况下,我建议您向服务添加JsonP支持,并使用JsonP代理而不是AJAX和REST代理

    谢谢你的回复。jsonp允许创建和更新记录吗?jsonp允许您发出GET请求,按照惯例,写入操作不应该在GET请求中完成,但如果无法避免,您可以根据需要创建或更新。我建议您阅读JsonP的工作原理