我是Spring 3.1.0的新手,我正在尝试创建一个可以作为Web应用程序和Web服务公开的应用程序。
对于我使用@ModelAttribute
提交表单对象的POST。我还希望通过任何海报公开这种方法,它可以使用与XML相同的对象。
我应该同时使用@ModelAttribute
& @RequestBody
在一起。我已在@RequestMapping
注释中添加了consumemes属性。
答案 0 :(得分:1)
当您提交表单时,数据以表单编码方式提供,当您使用XML / JSON时,它将作为字符串显示在正文中。您最好将所有常用逻辑放在中间服务层,并在控制器中调用它。因此,它允许您使用表单在现有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);
}
}
实际上,您甚至可以将它放在一个控制器中。