协议缓冲区 - @ModelAttribute

Protocol Buffers - @ModelAttribute

我在 post 请求中发送 Protocol Buffer 对象,但另一方面我无法获取对象,因为生成的 class(Protocol Buffer)没有空构造函数。所以无法构造@ModelAttribute.

@RequestMapping(value = "/path", method = RequestMethod.POST)
public string saveInvoice(@ModelAttribute(value = "person") ModelProtos.Person person) {
  ...
}

有什么建议吗?

注意我可以 return 协议缓冲区对象。

要转换 body 你需要使用 @RequestBody 这也是使用 HttpMessageConverter 的机制。

@ModelAttribute 适用于您提交常规表单或请求参数并希望将其绑定到 object 的情况。

还有一个关于此的 blog entry,虽然有点过时,因为它不使用自动配置而是 "manual" 但仍然提供信息。