【发布时间】:2014-01-06 22:02:18
【问题描述】:
我有一个绑定到 Spring 模型的 HTML 表单,用于接收用户数据并将其添加到数据库中。这工作正常。我使用 Spring Freemarker 宏作为字段在发送前接受输入和验证,例如
<@spring.formInput path="myForm.username"/>
<@spring.showErrors ", "/>
这也适用于文本输入。导致我出现问题的原因是使用 Spring 宏呈现多个复选框。我原来的 HTML 是:
<input name="roleList" type="checkbox" value="1"/>Adminstrator
<input name="roleList" type="checkbox" value="2"/>Developer
<input name="roleList" type="checkbox" value="3"/>Customer
我在控制器方法中创建了此信息的 Java Map<String, String>,键为“1”、“2”、“3”,并将其添加到模型中,然后在我的 ftl 模板中用此宏替换 HTML :
<@spring.formCheckboxes path="quickForm.roleList" options="${roleMap}" separator="<br>"/>
但我得到一个错误
Expecting a string, date or number here, Expression roleMap is instead a freemarker.template.SimpleHash
如果它需要地图,为什么会给出该消息? (如 FreeMarker 宏的 Spring Docs 中)谁能解释我应该如何提供复选框数据?
【问题讨论】:
标签: spring spring-mvc freemarker