【发布时间】:2018-05-08 16:09:06
【问题描述】:
如何使用 Thymeleaf 将文件上传到 @ModelAttribute? 我正在做的事情是:
上传.html
<form method="POST" action="#" th:action="@{/sending}" th:object="${collage}" enctype="multipart/form-data" >
<input type="file" th:field="*{picture}" />
<input type="file" th:field="*{picture}" />
<input type="submit" value="upload" />
</form>
我的控制器:
@Controller
public class MainController {
@GetMapping(value = { "/" })
public String index(){
return "upload";
}
@GetMapping("/collage")
public String paintPicture(Model model){
return "collage";
}
@PostMapping("/sending")
public String redirect(@ModelAttribute(value="collage") Collage collage, RedirectAttributes redirectAttr) {
Collections.shuffle(Arrays.asList(collage.getCollage()));
redirectAttr.addFlashAttribute("pictures",collage.getCollage());
return "redirect:/collage";
}
}
拼贴类:
public class Collage {
private MultipartFile[] pictures;
public Collage(){}
public MultipartFile[] getCollage() {
return pictures;
}
public void setCollage(MultipartFile[] pictures) {
this.pictures = pictures;
}
}
我在控制台中得到:java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'collage' available as request attribute 和“/”页面上的文本:
【问题讨论】:
-
@Jorge L. Morla 谢谢。但我认为,我的主要问题是 时,我无法显示主页。当我只使用 时,我可以显示主页,选择要上传的图像,但最后我从拼贴对象中得到 null。
标签: java spring-boot thymeleaf