【问题标题】:How to use <@spring.formMultiSelect> with Spring boot?如何在 Spring Boot 中使用 <@spring.formMultiSelect>?
【发布时间】:2017-12-15 16:51:50
【问题描述】:

我正在处理一个需要多选框的表单。我在使用 时找到了this link,但文档对我来说不是很清楚。 有人可以解释什么是路径、选项和属性吗?这将非常有帮助。

更多信息: 我正在尝试使用 Spring Boot 和 Freemarker 创建一个基本表单。我在数据库中有一个用户列表,我想在多选框中显示其名称。我有 DAO 类来从数据库中获取用户名,并有一个控制器类来显示 .ftl 页面。我对 Spring 和 Freemarker 完全陌生,需要一些关于如何实现 的指导。

提前致谢!

【问题讨论】:

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


    【解决方案1】:
    • path 是您要绑定的字段。
    • option是多选的选项
    • 属性是输入的其他字段

    例子:

    表格...

    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>
    

    【讨论】:

      猜你喜欢
      • 2021-06-19
      • 2020-11-15
      • 2015-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多