如何在 Spring 启动时使用 <@spring.formMultiSelect>?

How to use <@spring.formMultiSelect> with Spring boot?

我正在处理需要多选框的表单。我在使用 <@spring.formMultiSelect 路径、选项、属性> 时发现 this link,但文档对我来说不是很清楚。 有人可以解释什么是路径、选项和属性吗?那将非常有帮助。

更多信息: 我正在尝试使用 Spring Boot 和 Freemarker 创建一个基本表单。我在数据库中有一个用户列表,我想在多选框中显示其名称。我有 DAO classes 从数据库中获取用户名,并有一个控制器 class 显示 .ftl 页面。我是 Spring 和 Freemarker 的新手,需要一些关于如何实现 <@spring.formMultiSelect> 的指导。

提前致谢!

  • 路径是你要绑定的字段。
  • option是multi的选项select
  • 属性是输入的其他字段

示例:

表单...

public class PersonForm {
   private String name;
   // Getter Setter
}

和控制器...

@Controller
public class Controller{
  @GetMapping(value =  "/")
  public String getPersonForm(Model model){
     PersonForm personForm = new PersonForm();
     model.addAttribute(personForm);
  }
}

询问

<@spring.formInput "personForm.name" 
"id='some-id' placeholder='Enter name' class='some-class-for-input'" />

对于这个例子 "personForm.name" 是路径,第二行是属性字段

在您的示例中,选项是映射类似 { "1": "Male", "2": "Female" }

spring.ftl代码...

<#macro formMultiSelect path options attributes="">
    <@bind path/>
    <select multiple="multiple" id="${status.expression?replace('[','')?replace(']','')}" name="${status.expression}" ${attributes?no_esc}>
        <#list options?keys as value>
        <#assign isSelected = contains(status.actualValue?default([""]), value)>
        <option value="${value}"<#if isSelected> selected="selected"</#if>>${options[value]}</option>
        </#list>
    </select>
</#macro>