gpt4 book ai didi

java - Spring MVC + 速度 : proper way to bind DropDown options

转载 作者:行者123 更新时间:2023-12-04 04:54:19 25 4
gpt4 key购买 nike

我有一个表单,其中一些字段与 Spring 速度宏绑定(bind):

#springFormInput("model.email", "required email='true' maxlength='100'")
#springFormInput("model.name", "required maxlength='100'")
...

我想将 DropDown 绑定(bind)到一个值,并将该 DropDown 的 OPTIONS 设置为我的模型上的一个值,例如:
public class MyDto {
private String email;
private String name;
private String dropdownValue;
private List<String> dropdownOptions;

...
}

我的观点是:
#springFormInput("model.email", "required email='true' maxlength='100'")
#springFormInput("model.name", "required maxlength='100'")
#springFormSingleSelect("model.dropdownValue", "dropdownOptions", "required")
...

它不工作。该列表没有值。
我怎样才能做到这一点?

最佳答案

从文档:

#springFormSingleSelect ($path $options $attributes)
  • 允许选择单个所需值的选项下拉框。

  • 参数:
  • path :要绑定(bind)的字段的名称(即 searchCriteria.title )。
  • options : 一个 Map包含可以在输入字段中选择的所有可用值。映射的键表示将是 POST 的值从表单返回并绑定(bind)到命令对象。属于键的值用作向用户显示的标签。通常这种 map 由 Controller 作为引用数据提供。根据所需的行为,可以使用任何 Map 实现。
  • attributes :要包含在
    HTML 标记本身。该字符串由宏逐字回显。例如,在一个textarea您可以提供属性为 'rows="5" cols="60"' 的字段或者你可以通过
    样式信息,例如 'style="border:1px solid silver"' .




  • 因此,在您的具体情况下,您必须制作 dropdownOptions一个 Map :
    private Map<String, String> dropdownOptions;

    将对象添加到 map 中,例如 map.put("x","y")生成 <option value="x">y</option> .

    然后在 View 中使用它,例如:
    #springFormSingleSelect("model.dropdownValue", $model.dropdownOptions,"required")



    出于好奇,这里是宏的代码(调用 .keySet() 需要 Map):
    #macro( springFormSingleSelect $path $options $attributes )
    #springBind($path)
    <select id="${status.expression}" name="${status.expression}" ${attributes}>
    #foreach($option in $options.keySet())
    <option value="${option}"
    #if("$!status.value" == "$option")
    selected="selected"
    #end>
    ${options.get($option)}</option>
    #end
    </select>
    #end

    关于java - Spring MVC + 速度 : proper way to bind DropDown options,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16990098/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com