私たちは基本的にthis questionポーズと同じ問題を抱えていますが、リストのほかにも、我々はグローバルな解決策を探しています。Springブートでコレクションに変換するときに、Spring MVCがカンマを解釈しないようにするにはどうすればよいですか?
現在、我々はこのように定義されているREST呼び出しがあります。
@RequestMapping
@ResponseBody
public Object listProducts(@RequestParam(value = "attributes", required = false) List<String> attributes) {
を呼び出しが正常に動作し、リストには二つの要素「TEST1:12,3」が含まれます属性:呼び出されたときに「TEST2 TEST1を」このように、次のように呼び出されたときに、 "3":
product/list?attributes=test1:12,3
0:
product/list?attributes=test1:12,3&attributes=test1:test2
しかし、リストはまた、 "12 TEST1を" 二つの要素が含まれます属性
この理由は、最初のケースでは、最初のケースでSpringがArrayToCollectionConverterを使用するためです。後者の場合、 "、"をセパレータとして使用して引数を分割するStringToCollectionConverterを使用します。
パラメータでカンマを無視するようにSpringブートを設定するにはどうすればよいですか?可能であれば、ソリューションはグローバルでなければなりません。我々は代わりに、配列のリストを持っているので、
This questionは、私たちのために動作しません。私たちが試みている何
。さらに、これはコントローラーローカルソリューションのみになります。
私も、この設定を追加しようとしました:
CustomStringToCollectionConverter春StringToCollectionConverterのコピーですが、分割せずに、しかし、春のコンバータはまだ優先的に呼び出される@Bean(name="conversionService")
public ConversionService getConversionService() {
ConversionServiceFactoryBean bean = new ConversionServiceFactoryBean();
bean.setConverters(Collections.singleton(new CustomStringToCollectionConverter()));
bean.afterPropertiesSet();
return bean.getObject();
}
。
私はまた、 "mvcConversionService"をBean名として試しましたが、それでも何も変わりませんでした。
:このような
何かを! – ircecho