如何在 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>
我正在处理需要多选框的表单。我在使用 <@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>