时间:2013-11-28 06:52:41

标签: java jsp spring-mvc binding controller

我正在使用Spring MVC表单选择框绑定一个列表,如下所示

<c:forEach var="item" items="${instance.parameters}" varStatus="itemsRow">
    <form:select size="6" path="parameters[${itemsRow.index}].parmvalues" multiple="true">

        <form:options items="${item.pluginParmvalues}" itemValue="id" itemLabel="parmValue" />

    </form:select>
</c:forEach>

绑定后,<form:select正确显示值。但是当我尝试保存它时会抛出异常。我是否还应将<form:options值绑定到类似

的值
<form:options path="parameters[${itemsRow.index}].parmvalues[0].parmValue"

而不是items="${item.pluginParmvalues}"来获取/保存控制器中的值?

例外:

无法将[java.lang.String]类型的值转换为属性'parmvalues [0]'所需的类型[com.domain.Parmvalue]:找不到匹配的编辑器或转换策略]

1 个答案:

答案 0 :(得分:0)

这种方式选择框没有限制。您必须使用隐藏字段并将该隐藏字段与path="parameters[${itemsRow.index}].parmvalues"绑定。每次更改选择框值。通过javascript / jquery更改该隐藏字段的值。