【发布时间】:2018-07-07 10:39:15
【问题描述】:
您好,请帮助我处理 Spring RequestMapping。我有这样的页面:
<form action="/add_photo" enctype="multipart/form-data" method="POST">
Photo: <input type="file" name="photo">
<input type="submit" />
</form>
和这样的控制器:
@Controller
@RequestMapping("/")
public class MyController {
private Map<Long, byte[]> photos = new HashMap<>();
@RequestMapping("/")
public String onIndex() {
return "index";
}
@RequestMapping(value = "/add_photo", method = RequestMethod.POST)
public ModelAndView onAddPhoto(@RequestParam MultipartFile photo) {
if (photo.isEmpty()) {
throw new PhotoErrorException();
}
try {
long id = System.currentTimeMillis();
photos.put(id, photo.getBytes());
ModelAndView model = new ModelAndView();
model.addObject("photo_id", id);
model.setViewName("result");
return model;
} catch (IOException e) {
throw new PhotoErrorException();
}
}
}
方法“onIndex”正在工作,但 onAddPhoto 似乎没有,当我单击带有 URL“/add_photo”的按钮时,它给了我 404 而不是页面“结果”
【问题讨论】:
-
显示表单时地址栏中显示的 URL 是什么?提交表单后地址栏中显示的 URL 是什么?
-
提交表单后显示“/add_photo”
-
提交之前呢?
-
那么,如果
@RequestMapping("/")的完整路径是/photos/,那么@RequestMapping(value = "/add_photo"的完整网址应该是什么?应该是/add_photo,还是应该是/photos/add_photo?你认为这个/photosprefix 是什么,它来自哪里?
标签: spring spring-mvc request-mapping modelandview