SSM中保存数据出现415错误

服务器415错误

ssm框架的controller

jsp页面

问题:页面出现415错误

原因:请求和响应类型不一致

分析:

先排除以下基本的环境配置

1.URL路径对应好,视图解析器配置好,controller的@RequestMapping的路径要和视图解析器适配

2.传递的参数一定要一一对应,实体类有,表单数据没有是可以的,反之无法封装

3.jsp页面不要有error的错误,特别是少了标点符号!!!

  出现了415错误一般是请求和响应的contentType类型不一致,可以F12看到浏览器的accept和contentType是不一致的,很多博客上都写着直接ajax设置contentType=“application/json;charset=UTF-8”,确实可以实现传递实体类参数自动映射,但是在以上案例中是要用表单提交的方式,里面不能设置enctype,所以jsp页面中表单提交是以键值对的字符串格式传到controller,所以可以通过设置controller接收的类型,使用@RequestMapping而不是@PostMapping,同时方法参数不建议贴注解@RequestBody ,换成传统的HttpServletRequest 去getParameter()

附注:@RequestBody是将页面的json格式转换成java对象,而页面表单提交使用的是字符串格式的键值对形式;

修改后,完成实体类传参保存到数据库!

原文地址:https://www.cnblogs.com/sjfxdbky/p/13186864.html