在SpringMVC学习过程中,练习使用REST风格的进行简单的CRUD的DEMO的时候,在执行Edit操作后出现了如下图405的错误。在提交页面的action中的请求前加上${pageContext.request.contextPath }
这类错括 method(PUT,DELETE,POST)not supported,原因很有可能就是后台中的uri(即handler类中)与前端 的uri不一致导致的。
发现这种错误如何进行修改?
解决办法:
将项目部署后,运行起来,键盘上按(F12)打开浏览器的开发者工具。当点击edit并且进行修改操作后提交页面,这个时候报错。
可以利用开发者工具查看此时的连接地址:
步骤如下:
点开网络----à看下面图片①标注的位置(根据自己的情况)-----à再看②(可以看到,Request URL:http://localhost:8000/springmvc02/add3),记住它---->查看后端代码RequestMaping映射的URL,是否一致
找到method为PUT,同时value="/emp"的url,而我这里写的是"/add3”,路径不对当然就找不到页面了,所以报错了。
所以改为:
@RequestMapping(value="/add3",method=RequestMethod.PUT)即可。
@RequestMapping(value = "/emp",method= RequestMethod.PUT)
public String updateEmp(Employee employee) {
employeeDao.save(employee);
return "redirect:/emps";
}
总而言之,解决这类的办法就是看@RequestMapping(value="/url1",method=RequestMethod.method*)中的url与前端页面中地址是否一致的问题。
根本原因还是对SpringMVC机制的原理理解不够透彻,再去多理解理解,弄懂即可!!!