REST的关键原则之一就是“使用标准接口”(the use of the Uniform Interface),也就是提倡根据不同的语义使用GET, PUT, POST和DELETE方法,而html的form标签只支持两种提交方法:POST和GET,所以,为了使用PUT和DELETE方法,可以在web.xml中配置一个过滤器:
<filter><filter-name>httpMethodFilter</filter-name><filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
</filter><filter-mapping><filter-name>httpMethodFilter</filter-name><servlet-name>petclinic</servlet-name>
</filter-mapping>
值得一提的是:这个过滤器是一个普通的过滤器,也就是说,它可以和任何Java框架一起使用,而不仅仅是Spring MVC
如果你使用的是spring提供的form标签,那么像下面这样写就好了:
<form:form method="delete"><p class="submit"><input type="submit" value="Delete Pet"/></p>
</form:form>
如果你使用的是普通的html标签,或者其它标签,那么要将method值设置为POST,然后再form里添加一个_method隐藏域,如下:
<form method="post"><input type="hidden" name="_method" value="delete"/><p class="submit"><input type="submit" value="Delete Pet"/></p>
</form>
- spring MVC关于这部分的叙述