【问题标题】:Spring form select modifing list itemsSpring表单选择修改列表项
【发布时间】:2012-12-30 15:53:09
【问题描述】:

以下 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,似乎在 items 属性中访问它会删除除第一个元素之外的所有元素!知道是什么原因造成的吗?

干杯! NFV

【问题讨论】:

  • 为什么卧室实例的第二次渲染不一样?
  • 这就是我无法理解的,它的床位列表不应该被 sf:select 修改,但它似乎是?
  • 卧室类的toString方法是什么样的?它叫remove吗?
  • 不,只是标准 - 我在上面添加了它
  • 看我的回答。它可能会有所帮助

标签: spring model-view-controller jstl


【解决方案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 上的绑定值是枚举,spring 将自动使用该类的所有枚举值列表。

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

<sf:options itemLabel="friendlyName" />

【讨论】:

  • 完美运行,现在我想起来很有意义,谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-09-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-15
相关资源
最近更新 更多