【问题标题】:Spring MVC CRUD Controller with Ember Data带有 Ember 数据的 Spring MVC CRUD 控制器
【发布时间】:2015-11-10 20:37:04
【问题描述】:

我在 Spring MVC API 中有一个 CRUD 控制器。

这是我的创建方法:

    @Override
    @JsonView(ApiView.FormView.class)
    @RequestMapping(method = RequestMethod.POST, consumes = ApiMediaType.jsonContentType, produces = ApiMediaType.jsonContentType)
    public ApiResponse create(@RequestBody @Valid Entity entity, BindingResult result) {
        if (result.hasErrors()) return new ApiResponse(result.getAllErrors());
        service.add(entity);
        return new ApiResponse(entity);
    }

这很好用。

如果我将此类数据发送到 API,它会起作用

   {
        "email":"user@company.com",
        "password":"secret!",
        "firstName":"John",
        "lastName":"Doe",
        "title":"Mr."
    }

问题是我将 Ember JS 与 Ember Data 一起使用。我的适配器正在发送这些数据:

{
   "data":{
      "attributes":{
         "email":"user@company.com",
         "firstName":"John",
         "lastName":"Doe",
         "title":"Mr.",
      },
      "type":"users"
   }
}

这不是 @Valid User form,我的 UserController 期望在下面声明的 create 方法中:

public ApiResponse create(@RequestBody @Valid User form, BindingResult result) {}

如何将 Ember 发送到用户对象的数据转换为我的 Spring 应用程序?

感谢和抱歉我的英语。

【问题讨论】:

    标签: spring spring-mvc ember.js ember-data crud


    【解决方案1】:
    【解决方案2】:

    您忘记了@ResponseBody 注释。

    试试这个:

    @Override
    @JsonView(ApiView.FormView.class)
    @RequestMapping(method = RequestMethod.POST, consumes = ApiMediaType.jsonContentType, produces = ApiMediaType.jsonContentType)
    @ResponseBody    
    public ApiResponse create(@RequestBody @Valid Entity entity, BindingResult result) {
        if (result.hasErrors()) return new ApiResponse(result.getAllErrors());
        service.add(entity);
        return new ApiResponse(entity);
    }
    

    【讨论】:

      猜你喜欢
      • 2013-02-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-26
      • 2011-12-21
      • 2017-01-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多