RESTful风格PUT下的图片上传问题

来源:4-3 商户模块_思考:如何解决RESTful应用中的问题

慕侠935299

2019-10-09

 根据老师说的,为了能让RESTful风格解析器,能解析到图片上传表单的

<input name="_method" value="PUT">

我的问题是web.xml中的加载顺序问题,所以先把我的web.xml顺序贴出来。

<!--配置中文过滤器-->
  <filter>
    <filter-name>characterEncodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
      <param-name>encoding</param-name>
      <param-value>UTF-8</param-value>
    </init-param>
  </filter>
  <filter-mapping>
    <filter-name>characterEncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

  <filter>
    <filter-name>multipartFilter</filter-name>
    <filter-class>org.springframework.web.multipart.support.MultipartFilter</filter-class>
    <init-param>
      <param-name>multipartResolverBeanName</param-name>
      <param-value>multipartResolver</param-value>
    </init-param>
  </filter>
  <filter-mapping>
    <filter-name>multipartFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

  <!--配置RESTful风格过滤器-->
  <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>

  <!--配置前端控制器-->
  <servlet>
    <servlet-name>dispatcherServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:spring/applicationContext.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>dispatcherServlet</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>

 PUT方法,所以·在HiddenHttpMethodFilter 的前面配置一个MultipartFilter,让MultipartFilter过滤器,提前去加载图片上传类型的表单的 “_method”。
 但是在这个filter中引用了 param-value 属性,这个属性是在后置配置的前端控制器dispatcherServlet中的初始化init-param方法加载xml方法加载进去的。
 所以我的问题就在这里,multipartFilter这个过滤器能调用到multipartResolver这个spring中的文件上传控制器吗。
 然后,我的基于RESTful风格的删除方法成功了,修改方法报的错是500,问题好像是不能正常解析到spring当中的文件上传解析器的方法

写回答

2回答

源生活

2019-10-09

完整的代码你有下载吗?参照一下那里面的web.xml

0
0

慕侠935299

提问者

2019-10-09

好像不小心剧透了,自己在javaWeb阶段理解的web.xml文件加载顺序,自上而下,没想到与老师挖的坑有点歪打正着了

0
1
源生活
是的,这个问题视频里应该是说到过。
2019-10-09
共1条回复

IT段子手详解MyBatis遇到Spring 秒学Java SSM开发大众点评

【毕设】SSM全面梳理,前后端分离,zTree 和复杂SQL打造权限系统,解惑MyBatis和RESTful

1001 学习 · 485 问题

查看课程