您的位置:首页 > 编程语言 > Java开发

Spring mvc 浏览器支持 put, delete 提交方法

2015-09-02 13:52 411 查看
在 jQuery 中这样发送 Ajax 请求:

$.ajax({

url: '/xxx/' + id + '/update',

type: 'POST',

data: {

_method: 'PUT'

},

dataType: 'HTML',

success: function(data) {

...

}

});

在 Spring Controller 这样接收请求:

@RequestMapping(value = "/xxx/{id}/update", method = RequestMethod.PUT)

public String update(HttpServletRequest request, @PathVariable("id") Long xxxId) {

...

}

在 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>

<servlet-name>dbproxymanage</servlet-name>

</filter-mapping>

<form method="POST">这里不要变动。

在form内部加上一hidden域

<input type="hidden" name="_method" value="put" />就可以了。

浏览器本身只支持get和post方法,使用_method来告知spring这是一个put请求。

建议你使用spring的taglib,写form会方便很多,还可以绑定model。

[html] view
plaincopy

<servlet>

<servlet-name>dbproxymanage</servlet-name>

<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

<init-param>

<param-name>contextConfigLocation</param-name>

<param-value>/WEB-INF/classes/spring/*.xml</param-value>

</init-param>

<load-on-startup>1</load-on-startup>

</servlet>

<servlet-mapping>

<servlet-name>dbproxymanage</servlet-name>

<url-pattern>*.do</url-pattern>

</servlet-mapping>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: