У меня есть форма, чтобы перечислить ведра в опциях выбора, она загружает файл в корзину после выбора ведра и файла, но я не могу получить выбранный ковш в контроллере, папка alwsy return пустая строка, хотя mutipartFile не проблема, я действительно хочу знать, почему! Я googled для всей этой недели, но никакого результата, что мне нужно! Я очень новый в thymeleaf даже весной рамки :( Pls помочь мне решить эту простую задачу для вас :)Невозможно получить выбранную опцию в контроллере
части HTML-файл, как показано ниже:
<form role="form" enctype="multipart/form-data" action="#" th:object="${folder}" th:action="@{'/drill/skin/upload'}" method="POST">
<div class="form-group">
<label class="form-control-static">Select Bucket</label>
<select class="form-control" th:field="${folder}">
<option th:each="bucket : ${buckets}" th:value="${bucket.name}" th:text="${bucket.name}">bucket</option>
</select>
</div>
<label class="form-control-static" for="inputSuccess">Select Upload File</label>
<div class="form-group">
<input type="file" class="form-control" name="uploadFile"/>
</div>
<div class="form-group">
<button class="btn btn-primary center-block" type="submit">Upload</button>
</div>
</form>
контроллера, как показано ниже:
@RequestMapping(value="/", method=RequestMethod.GET)
public String provideUploadInfo(Model model) {
List<Bucket> buckets = s3Service.listBuckets();
model.addAttribute("buckets", buckets);
model.addAttribute("folder", "com.smartstudy");
return "index";
}
@RequestMapping(value="/upload", method=RequestMethod.POST)
public String handleFileUpload(
@ModelAttribute("folder") String folder,
@RequestParam("uploadFile") MultipartFile uploadFile, Model model) {
log.info("Bucket: " + folder + ", uploadFile: " + uploadFile.getOriginalFilename());
if (!uploadFile.isEmpty() && !folder.isEmpty()) {
return s3Service.upload(uploadFile, folder);
}
return "index";
}
Отлично! Вы правы, одна форма с одним классом формы проста, чтобы сделать что-нибудь еще! – mikezang
фантастический ответ – null