0

前の質問で説明したように、RequestMethod.PUT(および)を使用するのに手間がかかりました。やっとアプローチはうまくいきましたが 、Springコントローラーでメソッドを指定すると、フォームの送信時にこのメソッドが呼び出されますが、フォームにその属性がある場合でも、リクエストはマルチパートリクエストとは見なされないようです。RequestMethod.DELETERequestMethod.PUTenctype="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)。これは、リクエストがマルチパートリクエストではないように見えることを意味します。

requestメソッドをに変更するとRequestMethod.POST、すべて正常になります。

PUTメソッドを使用してマルチパートコンテンツを取得するにはどうすればよいですか?

4

0 に答える 0