如何在Spring MVC中使用PUT方法获取多部分内容?

时间:2012-12-01 18:17:55

标签: spring httprequest multipartform-data http-delete http-put

我在previous question中描述的使用RequestMethod.PUT(和RequestMethod.DELETE)时感到笨手笨脚。最后这种方法有效,但是当我在Spring控制器中使用RequestMethod.PUT指定一个方法时,在提交表单时会调用此方法,但可能看起来即使表单有请求也不会被视为多部分请求属性enctype="multipart/form-data"

表格如下,类似于上一个问题。

<form:form id="mainForm" name="mainForm" method="put" action="Temp.htm" enctype="multipart/form-data" commandName="tempBean">
    <input type="file" id="myFile" name="myFile"/>
    <input type="text" id="myText" name="myText"/>
    <input type="submit" id="btnSubmit" name="btnSubmit" value="Submit"/>
</form:form>

和单击提交按钮时调用的Spring中的方法如下所示。

@RequestMapping(method={RequestMethod.PUT}, value={"admin_side/Temp"}, headers={"content-type=multipart/form-data"})
public String update(@RequestParam("myText") String text, @ModelAttribute("tempBean") TempBean tempBean, BindingResult error, Map model, HttpServletRequest request, HttpServletResponse response)
{        
    System.out.println(ServletFileUpload.isMultipartContent(request)+"  :  "+text);
    return "admin_side/Temp";
}

获取其他请求参数,例如@RequestParam("myText") String text,甚至request.getParameter("myText"),但ServletFileUpload.isMultipartContent(request)的方法调用返回false(同样request.getParameter("myFile")返回null)表示请求似乎不是多部分请求。

当请求方法更改为RequestMethod.POST时,一切正常。

如何使用PUT方法获取多部分内容?

0 个答案:

没有答案