- ディスパッチャー サーブレットでマルチパート リゾルバーを構成しました。最初のアイテム
- 結果を特定の div に反映させたい。
- 特定の div で応答を取得する動機は ajax を使用して満たされますが、画像ファイルがコントローラーに到達しないため、画像のアップロードが null を返すというエラーが発生します。
- 画像ファイルがコントローラーに到達できず、null を返します。
- イメージ ファイルをコントローラーで受信する必要があります。また、応答は「harryPAGE」というdivにある必要があります
私のjspフォームページは
<form:form method="post" modelAttribute="uploadBean"
action="url"//this action takes to controller with request mapping as "hello"
commandName="uploadBean">
<table class="standardTable">
<tr>
<td>File</td>
<td><input type="file" name="fileData" id="fileData" size="50"
required="required"></td>
</tr>
<tr>
<td colspan=2 align="left"><input
class="btn right breadPrevious" type="submit" value="Upload"
/></td>
</tr>
</table>
<script>
$.ajax({
cache: false,
contentType: false,
processData: false,
type: 'POST',
});
$("form").submit(
function() {
alert("hi");
var value = $("#fileData");
alert(value);
$.post($(this).attr("action"), $(this).serialize(),
function(html) {
$("#harryPAGE").html(html);
});
return false; // prevent normal submit
});
</script>
<c:out value="${message}"></c:out>
</form:form>
私のコントローラークラスは
@RequestMapping(value = "/hello", method = RequestMethod.POST)
public ModelAndView uploadImage(@ModelAttribute ImageUploadBean uploadBean,HttpServletRequest req) {
int test=5;
ModelAndView modelAndView = new ModelAndView("apage");
try {
System.out.println(req.getParameter("fileData"));
MultipartFile imgFile = uploadBean.getFileData();
test=imageService.uploadImage(imgFile);
if(test==1){
modelAndView.addObject("message","some message"); }
else if(test==0){
modelAndView.addObject("message","some message"); }
} catch (Exception e) {//the control enters here and gives exception
logger.error("Unable to upload image " + e.getMessage(), e);
modelAndView.addObject("message","some error"); }
return modelAndView;
}
私のディスパッチャーサーブレット.xmlファイルは、マルチパートリゾルバーを構成しました
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- one of the properties available; the maximum file size in bytes -->
<property name="maxUploadSize" value="100000000"/>
</bean>