如何在Freemarker中将复选框绑定到dto

时间:2019-05-20 18:26:25

标签: spring-boot spring-mvc freemarker

我想用表格更新dto。 它适用于文本字段:

<@spring.formInput "updateable.name" "" "text"/>,但是复选框有问题。

dto有一个列表,我想从中删除角色,或者在提交后选中或取消选中表单上的选项时向其中添加新角色。

我尝试使用HashMap角色,并将所有角色都放入其中:

roles.put(roleDto.getId().toString(), roleDto.getName());

表格:

<@spring.formCheckboxes path="updateable.roles" options="${roleMap}" separator="<br>"/>

转换器:

@Override
public RoleDto convert(final String id) {
  System.out.println("Trying to convert id=" + id + " into a role");
  int parseId = Integer.parseInt(id);
  int index = parseId - 1;
  List<RoleDto> roleDtos = roleApi.fetchAllRoles();
  return roleDtos.get(index);
}

输出为:

[Expected a string or something automatically convertible to string (number, date or boolean), 
or "template output" , but this has evaluated to an extended_hash 
(wrapper: f.t.SimpleHash):==> roleMap

所以我什至看不到表格上的复选框。

0 个答案:

没有答案