我是 Spring 3.1.0 的新手,正在尝试创建一个可以作为 Web 应用程序和 Web 服务公开的应用程序。
对于我使用 @ModelAttribute
提交表单对象的 POST。我还想通过任何海报公开这种可以使用与 XML 相同的对象的方法。
我应该同时使用 @ModelAttribute
和 @RequestBody
吗?我已经在 @RequestMapping
注释中添加了 consumes 属性。
最佳答案
当您提交表单时,数据以表单编码的方式出现,而当您使用 XML/JSON 时,数据以字符串形式出现在正文中。您最好将所有公共(public)逻辑放在中间服务层并在您的 Controller 中调用它。因此,它允许您使用表单在现有 HTML 页面之上简单地构建 REST 服务:
public class Service {
public void registerUser(User user){
}
}
@RequestMapping("users")
public class FormController{
@Autowired private Service service;
@RequestMapping("register")
public ModelAndView registerUser(@ModelAttribute User user){
service.registerUser(user);
}
}
@RequestMapping("service/v1")
public class RESTController{
@Autowired private Service service;
@RequestMapping("users/register")
public ModelAndView registerUser(@RequestBody User user){
service.registerUser(user);
}
}
实际上,您甚至可以将它放在一个 Controller 中。
关于java - Spring 3.1.0 mvc 绑定(bind) modelattribute 以及 requestbody,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17922546/