这是我的html文件。我用DB中的所有文件做了一个列表。
<div class="container">
<form action="#" th:action="@{/getFiles}" method="post">
File Name:
<input list="files" name="files" />
<datalist id="files">
<option th:each="file: ${files}" th:value=" ${file.fileName}"></option>
</datalist>
<button type="submit">OK</button>
</form>
</div>
当我选择一个文件时,我想知道我选择了哪个文件。 这是控制器。 Post from post方法始终为空......
@Autowired
public FileRepository fileRepository;
@GetMapping("/getFiles")
public String fileGet(Model model) {
List<File> files = new ArrayList<>();
files = fileRepository.findAll();
model.addAttribute("files", files);
model.addAttribute("file", new File());
return "filesFromDB";
}
@PostMapping("/getFiles")
public String filePost(@ModelAttribute("file") File file, Model model) {
model.addAttribute("fileName", file.getFileName());
System.out.println("File: " + file.getFileName());
return "resultFileDB";
}
答案 0 :(得分:0)
您必须在数据列表中添加select标记。
<div class="container">
<form action="#" th:action="@{/getFiles}" method="post">
File Name:
<input list="files" name="files" />
<datalist id="files">
<select>
<option th:each="file: ${files}" th:value=" ${file.fileName}">
</option>
</select>
</datalist>
<button type="submit">OK</button>
</form>