我们知道SpringMVC中的RESTful风格,它不是一套标准,只是一种开发方式,架构思想,使用这种方式的话,url更加简洁,有利于不同系统之间的资源共享。RESTful具体来讲就是HTTP协议的四种形式,它有四种基本操作:
1.GET:获取资源;对应注解——@GetMapping
2.POST:新建资源;对应注解——@PostMapping
3.PUT:修改资源;对应注解——@PutMapping
4.DELETE:删除资源;对应注解——@DeleteMapping
在form表单中,我们填好action后,method为post或get,并没有DELETE和PUT,怎么办?解决如下:
<td>
<form action="${pageContext.request.contextPath}/delete/${course.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>
</td>
我们通过隐藏的input域,再结合过滤器:
<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>
将当前的post请求转换为DELETE请求