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