Springboot + Freemarker:无法从freemarker页面向控制器正确发送“select - option”值

时间:2018-02-20 12:45:46

标签: spring model-view-controller freemarker

我有一个带有表单的freemarker页面,其中包含多个单选项,这些选项取自DB。

在这里,我将选项列表发送到页面:

@GetMapping("/download")
public String getDownloadMethod(ModelMap modelMap, RedirectAttributes redirectAttributes){
    modelMap.addAttribute("filesList", dao.listAllFiles());
    modelMap.addAttribute("getFile", new Model());
    return "download-form";
}

然后是表格:

    <form method="POST" action="/download-post">
<#if filesList??>
    <#if filesList?size != 0>
        <select name="files" value="getFile">
            <#list filesList as file>
                <option value="${file.id}">${file.id} -  ${file.name}</option>
                <br/>
            </#list>
        </select>
    </#if></#if>
    <br/>
    <br/>
    <br/>
    <input type="submit" value="Get File"/>
</form>

我们选择其中一个选项,所选选项的ID应发送到控制器中的post方法:

@PostMapping( “/下载-后”)     public String postDownload(@ModelAttribute(“getFile”)Model model,RedirectAttributes redirectAttributes){

    redirectAttributes.addFlashAttribute("message",
            "You successfully downloaded '" + model.getId() + " " + model.getName()+ "'");
    return "redirect:/downloadStatus";
}

然而,当我执行代码时,我总是得到model.id的“0”值和model.name

的null

我应该如何正确绑定表单中的值,以便将它们正确地发送给控制器?

差异from this question是我的选项列表不是静态的,而是从数据库中选择的,可能有数百个选项,您无法预先定义。

0 个答案:

没有答案