springmvc Rest Api 使用中遇到的问题
2018-04-16 本文已影响65人
横渡
前端传入的参数后台接收不到
后台的controller
代码如下:
@Controller
@RequestMapping("/user")
public class RegisterController {
@Autowired
private RegisterService registerService;
@RequestMapping(value = "/register", method = RequestMethod.POST)
@ResponseBody
public AppResult register(User user) {
AppResult result = registerService.register(user);
return result;
}
}
前端反馈得不到正确的结果,我就很纳闷,猜想是不是content-type指定上双方没有协商好。使用RestClient测试:
json.png
这里指定了content-type:application/json
,果然后台接收到的loginName和password以及rId都为null。看来前端传递参数时已经指定了json格式。
这里决定对后台进行修改:User 前面加 @RequestBody
即可,这样后台就可以接收 content-type:application/json
格式参数;如果不加该修饰,默认是接收form表单post提交,即content-type:application/x-www-form-urlencoded
。