2

次の 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<Enum> であり、items 属性でアクセスすると最初の要素以外がすべて切り取られているようです!! 何がこれを引き起こしているのでしょうか?

乾杯!NFV

4

1 に答える 1

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 ドキュメントによると: http://static.springsource.org/spring/docs/3.0.x/reference/spring-form.tld.html#spring- form.tld.options

選択のバインドされた値が列挙型の場合、Spring はそのクラスのすべての列挙値のリストを自動的に使用します。

options タグの itemLabel および itemValue プロパティを使用して、よりユーザーフレンドリーなラベルを表示できます。

<sf:options itemLabel="friendlyName" />
于 2012-12-30T16:43:09.823 に答える