分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 网页技术

Restful风格,PUT修改功能请求,表单中存在文件报错-HTTP Status 405 - Request method 'POST' not supported

发布时间:2023-09-06 01:42责任编辑:熊小新关键词:POST

解决方案配置如下

 ???<!-- 配置文件上传解析器 --> ???<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> ?????????<!-- 指定所上传文件的总大小不能超过20M。注意maxUploadSize属性的限制不是针对单个文件,而是所有文件的容量之和 --> ?????????<property name="maxUploadSize" value="20000000"/> ????????<property name="defaultEncoding" value="utf-8"></property> ???</bean> ???<!-- web.xml中引入上面配置,这个很重要!只有在contextConfigLocation配置的文件下的bean才会直接被加载供下面的过滤器调用 --> ???<context-param> ???????<param-name>contextConfigLocation</param-name> ???????<param-value>classpath:spring/root-context.xml</param-value> ???</context-param> ???????<!--form表单中存在文件时,该过滤器可以处理http请求中的文件,被该过滤器过滤后会用post方法提交,form表单需设为enctype="multipart/form-data"--> ???<filter> ???????<filter-name>MultipartFilter</filter-name> ???????<filter-class>org.springframework.web.multipart.support.MultipartFilter</filter-class> ???????<init-param> ???????????<param-name>multipartResolverBeanName</param-name> ???????????<!--spring中配置的id为multipartResolver的解析器--> ???????????<param-value>multipartResolver</param-value> ???????</init-param> ???</filter> ???<filter-mapping> ???????<filter-name>MultipartFilter</filter-name> ???????<url-pattern>/*</url-pattern> ???</filter-mapping> ???<!--解析form表单中隐藏的name为_method的input,需放在MultipartFilter之后,才能在对应的put请求方法中找到对应的controller--> ???<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>

原理是过滤器是逐个进行的,先用MultipartFilter处理文件,在用HiddenHttpMethodFilter处理form表单中隐藏的name为_method的input。其次MultipartFilter配置的multipartResolverBeanName的值要在contextConfigLocation配置的xml中。

org.springframework.web.multipart.support.MultipartFilter会处理http请求中的文件流,无法解析_method参数。

org.springframework.web.filter.HiddenHttpMethodFilter可以解析form表单中隐藏的name为_method的input。

Restful风格,PUT修改功能请求,表单中存在文件报错-HTTP Status 405 - Request method 'POST' not supported

原文地址:https://www.cnblogs.com/aeolian/p/8443770.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved