@RequestBody的问题

Catelyn 发布于 2013/11/13 18:18
阅读 4K+
收藏 0

比如我一个form表单提交一个对象的各个属性值,像这样

<form action="<%=path %>/join/update" method="post" id="updateform">
      		项目名称:<input type="text" name="xmmc" /><br/>
      		项目访问地址:<input type="text" name="xmdz" /><br/>
      		描述:<input type="text" name="ms" /><br/>
      		<input type="submit" value="修改" />
  </form>
之后在服务器端方法接收
@RequestMapping("/join/update")
	public String updateJoinSystem(@RequestBody SystemJoinInfo join,Model model,RedirectAttributes attr){
		joinDao.update(join);
		model.addAttribute("joinList", joinDao.findAll());
		attr.addFlashAttribute("message", "保存用户成功");
		return "join/joinList";
	}
如果我点提交,然后浏览器的url是/join/update(本来应该是执行完逻辑返回joinList.jsp),然后页面是空白的(wtf?),并且这个方法也没执行,这是为神马,去掉@RequestBody就好了,入参是可以自动绑定了?那么@RequestBody存在的意义是神马!求解
加载中
0
大米被占用
大米被占用

参考:http://blog.csdn.net/walkerjong/article/details/7946109

@RequestBody

该注解常用来处理Content-Type: 不是application/x-www-form-urlencoded编码的内容,例如application/json, application/xml等;

它是通过使用HandlerAdapter 配置的HttpMessageConverters来解析post data body,然后绑定到相应的bean上的。

因为配置有FormHttpMessageConverter,所以也可以用来处理 application/x-www-form-urlencoded的内容,处理完的结果放在一个MultiValueMap<String, String>里,这种情况在某些特殊需求下使用,详情查看FormHttpMessageConverter api;

Catelyn
Catelyn
谢谢!
0
如梦技术
如梦技术
@RequestBody 是用于Ajax的
0
xieyongwei
xieyongwei

第一,你是否添加了jackson的jar包

第二,前台过来的请求参数SystemJoinInfo join是否是json类型

0
小野ye
小野ye
表单正常使用get提交的话, 就不用加@requestbody
0
小野ye
小野ye
另外最重要的问题是你的 requestmapping 没有写 method=requestmethod.post 默认的话是get吧 表单的method却是post,当然访问不到 这个应该看console。
返回顶部
顶部