1.spring支持REST风格的请求URL。这样就必须能够发送PUT和DELETE请求。在spring中使用HiddenHttpMethodFilter
可以将post请求转化为PUT和DELETE请求
2.如何发送PUT和DELETE请求。
2.1 配置HiddenHttpMethodFilter。在web.xml文件中。
<!--配置HiddenHttpMethodFilter:可以将post请求转化为put和delete请求 -->
<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>
2.2 发送post请求,并且要求同时携带一个name="_method"的隐藏域,value="DELETE"就是DELETE请求
value="PUT"就是PUT请求。
<!-- get请求 -->
<a href="springMVC/testRest/1">test get</a>
<br>
<!-- post请求 -->
<form action="springMVC/testRest" method="post">
<input type="submit" value="test post">
</form>
<br>
<!--delete 请求 -->
<form action="springMVC/testRest/1" method="post">
<input type="hidden" name="_method" value="delete">
<input type="submit"value="test delete">
</form>
<br>
<!--put 请求 -->
<form action="springMVC/testRest/1" method="post">
<input type="hidden" name="_method" value="put">
<input type="submit" value="test put">
</form>
2.3 在springMVC的目标方法中获取参数,使用@PathVariable获取参数。
@RequestMapping(value="/testRest/{id}",method=RequestMethod.GET)
public String testRest(@PathVariable("id") Integer id) {
System.out.println("testRest get : " + id);
return SUCCESS;
}
@RequestMapping(value="/testRest",method=RequestMethod.POST)
public String testRest() {
System.out.println("testRest POST" );
return SUCCESS;
}
@RequestMapping(value="/testRest/{id}",method=RequestMethod.DELETE)
public String testRestDelete(@PathVariable("id") Integer id) {
System.out.println("testRest DELETE : " + id);
return SUCCESS;
}
@RequestMapping(value="/testRest/{id}",method=RequestMethod.PUT)
public String testRestPut(@PathVariable("id") Integer id) {
System.out.println("testRest Put : " + id);
return SUCCESS;
}