【问题标题】:Spring 3.1.0 mvc binding modelattribute along with requestbodySpring 3.1.0 mvc 绑定模型属性以及 requestbody
【发布时间】:2013-07-29 03:43:12
【问题描述】:

我是 Spring 3.1.0 的新手,正在尝试创建一个应用程序,它可以作为 Web 应用程序和 Web 服务公开。 对于我使用@ModelAttribute 提交表单对象的 POST。我还想通过任何海报公开这种可以使用与 XML 相同的对象的方法。

我可以同时使用@ModelAttribute@RequestBody 吗?我已经在@RequestMapping注解中添加了consumes属性。

【问题讨论】:

    标签: java web-services spring-mvc annotations modelattribute


    【解决方案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);
        }
    }
    

    实际上,您甚至可以将它放在一个控制器中。

    【讨论】:

    • 嘿,谢谢,但是我已经考虑过了,但是这就像再次创建类似的方法一样,这实际上违背了整个讨论的目的。我不太确定单独的方法是否是唯一的出路。 .
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-21
    • 2012-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多