如何使用< @ spring.formMultiSelect>用Spring靴子?

时间:2017-12-15 16:51:50

标签: java spring spring-mvc spring-boot freemarker

我正在制作一个需要多选框的表格。我发现this link使用了< @ spring.formMultiSelect路径,选项,属性> ,但文档对我来说并不是很清楚。 有人可以解释什么路径,选项和属性?这将是非常有帮助的。

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

提前致谢!

1 个答案:

答案 0 :(得分:0)

  • 路径是您要绑定的字段。
  • 选项是多选
  • 的选项
  • 属性是输入的其他字段

示例:

...表格

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);
  }
}

askd

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

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

在你的示例中,选项是映射类似{&#34; 1&#34;:&#34;男&#34;,&#34; 2&#34;:&#34;女&#34; }

spring.ftl code ...

<#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>