HiddenHttpMethodFilter
普通浏览器只支持post和get方法,但实际上http不仅仅定义了这两个请求方法,还包括PUT、DELETE、HEAD以及POTIONS,故要解决浏览器对请求方式的限制,在SpringMVC就要使用过滤器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>
网页请求示例:
<form action="A/testpost" method="post">
<input type="submit" value="增"/>
</form>
<form action="A/testdelete" method="post">
<input type="hidden" name="_method" value="DELETE"/>
<input type="submit" value="删"/>
</form>
<form action="A/testput" method="post">
<input type="hidden" name="_method" value="PUT"/>
<input type="submit" value="改"/>
</form>
<form action="A/testget" method="get">
<input type="submit" value="查"/>
</form>
Controller:
@RequestMapping(value="testpost",method=RequestMethod.POST)
public String methodpost( )
{
System.out.println("---增---");
return "la";
}
@RequestMapping(value="testdelete",method=RequestMethod.DELETE)
public String methoddelete( )
{
System.out.println("---删---");
return "la";
}
@RequestMapping(value="testput",method=RequestMethod.PUT)
public String methodput( )
{
System.out.println("---改---");
return "la";
}
@RequestMapping(value="testget",method=RequestMethod.GET)
public String methodget()
{
System.out.println("---查---");
return "la";
}
注意点:在tomcat8.5中,DELETE和PUT请求可以进入对应的控制器中,但是在返回视图渲染时就会因为不支持而报错(405)
浙公网安备 33010602011771号