前端页面默认只能发送“get”、“post”请求,无法发送“put”、“delete”,要解决这个问题有以下两个步骤:
(一)在web.xml配置文件中配置SpringMVC提供的Filter:他可以把普通的请求转化为规定形式的请求。配置如下:
<!-- 配置filter,以便于前端发送“delete”和“put”请求方法 -->
<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>
注意:这里的"HiddenHttpMethodFilter"可通过Ctrl+Shift+T的方法搜索出来,复制其路径即可。
(二)在前端页面(第一个初始页面index.jsp)中发送“put”、“delete”请求。具体步骤:
1.创建一个post类型的表单
2.表单项中携带一个_method的参数
3.这个_method的值就是DELETE、put
<a href="book/1">查询图书</a><br/>
<form action="book" method="post">
<input type="submit" value="添加1号图书"/>
</form><br/>
<form action="book/1" method="post">
<input name="_method" value="delete"/>
<input type="submit" value="删除1号图书"/>
</form>><br/>
<form action="book/1" method="post">
<input name="_method" value="put"/>
<input type="submit" value="更新1号图书"/>
</form>
注意:表单中的请求方法用“post”,再添加一个<input name="_method" value="delete"/>
value值就是我们想发送的请求方法。
**注意:**高版本的tomcat无法显示jsp页面时,需要在要跳转的页面(我的是“success”页面)中添加如下代码即可正常显示“success”页面: