在jsp中渲染隐藏的方法域

相信大家都遇到过在浏览器中表单提交的时候如果使用post和get是完全没有问题的,但是你使用delete和put方式提交,能够成功吗?

目前html5和一些新的浏览器支持所有的http方法,但是不是全部浏览器都支持,这个时候你如果还是想通过浏览器进行提交该怎么办了?

 

哈哈,不绕圈子了
html表单中,将put和delet请求伪装成post请求就可以了,关键是创建一个带有隐藏域并且method为post的表单。例如下面:

<form method="post">

     <input type="hidden" name="_method" value=“delete"/>

     .......

</form>

 

下面还有一种更简单的方式:

当使用spring 的表单绑定库时,<sf:form>会让其变得更加简单。你可以讲method属性设置为期望的HTTP方法,<sf:form>将为你隐藏域:

<sf:form method="delete" modelAttribute="spitter">

</sf:form>

 

当然你的服务器端还是应该做相应的配置。

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>

    <url-pattern>/*</url-pattern>

</filter-mapping>

这里我们将HiddenHttpMethodFilter匹配到/*模式,这样所有URL的请求在到达DispatcherServlet前都会经过HiddenHttpMethodFilter。

注:通过非浏览器发送的请求以及RestTemplate发送的请求,没有必要包装成post,因此他们都支持所有的HTTP请求方式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值