Spring表单选择修改列表项

时间:2012-12-30 15:53:09

标签: spring model-view-controller jstl

以下jstl代码显示奇怪的行为:

${property.bedrooms[0]}

<sf:select path="bedrooms[0]" multiple="multiple" items="${property.bedrooms[0].beds}" />

${property.bedrooms[0]}

输出结果为:

Bedroom{id=4, beds=[KING, QUEEN], enSuite=false} 

+-------------+
| KING        |
+-------------+

Bedroom{id=4, beds=[KING], enSuite=false}

Bedroom.toString()包含:

@Override
public String toString()
{
    return "Bedroom{" + "id=" + id + ", beds=" + beds + ", enSuite=" + enSuite + '}';
}

property.bedrooms [0] .beds是一个List&lt; Enum&gt;,似乎在items属性中访问它会删除除第一个元素之外的所有内容!知道是什么导致了这个吗?

干杯! NFV

1 个答案:

答案 0 :(得分:1)

尝试:

<sf:form modelAttribute="property">
    <sf:select path="bedrooms[0].beds" multiple="true">
        <sf:options />
    </sf:select>
</sf:form>

根据spring-form(3.0.x)tld文档和源代码java doc: http://static.springsource.org/spring/docs/3.0.x/reference/spring-form.tld.html#spring-form.tld.options

如果select上的绑定值是枚举弹簧,则会自动使用该类的所有枚举值列表。

options标签的itemLabel和itemValue属性可用于显示更加用户友好的标签。

<sf:options itemLabel="friendlyName" />