如何使用Thymeleaf和Spring从数据列表中提取所选值

时间:2018-03-01 14:27:43

标签: java spring web thymeleaf

这是我的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";
}

1 个答案:

答案 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>