0

我正在使用 Spring 表单复选框标签。我的 modelAttribute 是 bookmarkMapping ,它又包含一个 folderMapping 对象列表,我试图根据这些对象构建复选框。

folderMapping 对象具有 isMapping 属性,该属性决定复选框的选中属性。

我正在尝试这个

<form:checkboxes items="${bookmarkMapping.folderMapping}" path="isMapped"  itemValue="isMapped" itemLabel="folderName" />

但它一直说 isMapped 不是 bookMarkMapping 的属性,这是真的。但是我应该以什么方式提供 path 属性,以便它可以指向带有 bookmarkMapping.folderMapping 列表的属性。

请帮忙。

4

2 回答 2

1

form:checkboxes 标签中涉及到两个列表:选中项的列表,以及可供选择的列表项。

所选项目的列表存储在path属性中。该path属性指向模型中的一个数组或字符串集合。

items属性指向可用项目的列表。该列表是请求中的一个属性。它通常是表示标签的数组或字符串列表。

这是一些示例代码。CheckboxesModel 包含一个选定项列表。该请求包含可用项目列表。

模型

公共类 CheckboxesModel {
列出选定项;

public List getSelectedItems() { return selectedItems; }

public void setSelectedItems(List selectedItems) { this.selectedItems = selectedItems; }

}

控制器

@RequestMapping("/index.do")

public String showCheckboxes(HttpServletRequest request, HttpServletResponse response, Model model) {

  CheckboxesModel checkboxesModel = new CheckboxesModel();
  List<String> selectedItems = new ArrayList<String>();
  checkboxesModel.setSelectedItems(selectedItems);
  model.addAttribute("checkboxesModel",checkboxesModel);

  List<String> availableItems = new ArrayList<String>();
  availableItems.add("One");
  availableItems.add("Two");
  availableItems.add("Three");
  request.setAttribute("availableItems",availableItems);

  return "index";

}

看法

<form:form action="checkBoxes.do" commandName="checkBoxesModel" method="POST">
    <form:checkboxes items="${availableItems}" path="selectedItems"/>
    <input type="submit" value="Submit"/>
</form:form>
于 2013-01-07T02:11:44.180 回答
0

您谈到了名为 isMapping 的属性,但您在 path 属性中设置了:isMapped #confused

路径是相对于 modelAttribute 的。您在 bookmarkMapping 中没有 isMapped 属性,但您有一个 folderMapping 属性。

所以你的路径应该是 folderMapping.isMapped

于 2013-01-30T01:19:19.703 回答