2

Spring MVC コントローラーでは、 の@PathVariable Long... idsような入力が渡​​されると問題なく解決されます1,2,3

パラメータが次のように宣言されている@PathVariable UUID... ids場合、コンマ区切りは機能しません: 400 応答が返されます。

PropertyEditororを処理するカスタムを実装できますUUID[]List<UUID>? 私が見つけることができる唯一の例は、コレクション/配列ではなく、単一の値です。

アップデート

以下の Phil Webb の回答に従って、この問題を Spring JIRA のバグとして報告した後、SpringSource の親切な人々が Spring 3.2 でこのサポートを追加しました。

4

3 に答える 3

4

この問題はSpring3.2で修正される予定です。詳細については、 https://jira.springsource.org/browse/SPR-9765を参照してください。

于 2012-10-12T22:04:22.597 に答える
2

この方法でカスタム コンバーターを登録できます。

import org.springframework.core.convert.converter.Converter;
class UUIDConverter implements Converter<String, UUID> {

    @Override
    public UUID convert(String source) {
        return UUID.fromString(source);
    }

}

Spring MVC に登録します。

<bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
    <property name="converters">
        <set>
            <bean class="....UUIDConverter"/>
        </set>
    </property>
</bean>


<mvc:annotation-driven conversion-service="conversionService"> 
</mvc:annotation-driven>

UUID を送信すると、リストに正しくマップされるはずです。

于 2012-09-05T13:28:02.173 に答える