今天在写测试的时候发现下面的方式会出现405错误
<form action="${pageContext.request.contextPath}/delete/${teacher.id}" method="post"> <button class="btn btn-danger btn-sm delete_btn" type="submit"> <input type="hidden" name="_method" value="DELETE"/> <span class="glyphicon glyphicon-trash">删除</span> </button> </form>
@PutMapping(value = "/update") public String edit(TeacherMap teacherMap){ for (String key:teacherMap.getTeacherMap().keySet()) { teacherDao.update(teacherMap.getTeacherMap().get(key)); } return "redirect:/getALL"; }
问题的原因在于没有设置过滤器
org.springframework.web.filter.HiddenHttpMethodFilter
在web.xml中设置
<filter> <filter-name>hiddenHttpMethodFilter</filter-name> <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class> </filter>
<filter-mapping> <filter-name>hiddenHttpMethodFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
然后问题就没有了