您在这里混合了两个概念。Spring MVC中的REST服务更加优雅,因为Spring为您处理JSON / XML编组:
@RequestMapping( headers = {"content-type=application/json"}, method = RequestMethod.POST, value = "/user/register")@ResponseBodypublic CreateNewUserResponse addUser( @RequestBody CreateNewUserRequest request) { UserBusiness userBusiness = UserBusinessImpl.getInstance(); return userBusiness.createNewUser(request);}注意
@ResponseBody注释。您不需要任何视图解析器和手动JSON编组。您可以免费获得XML(通过JAXB)。
但是,通过POST形式发送的数据非常不同。我建议创建第二个映射来处理不同的媒体类型:
@RequestMapping( headers = {"content-type=application/x-www-form-urlenpred"}, method = RequestMethod.POST, value = "/user/register")public ModelAndView addUser(@RequestParam("formParam1") String formParam1) { //...}使用这种配置,REST调用
Content-type=application/json将被路由到第一个方法,并向第二个方法形成POST请求(至少在理论上还没有尝试过)。请注意,与原始
@RequestParam注释相比,在Spring中处理表单数据的方法更简单



