Spring Conversion Service: Wie konvertiere ich String in List <MyType>?
Ich verwende den Konvertierungsdienst von Spring und habe meinen eigenen Konverter registriert:
public class MyTypeConverter implements Converter<String, MyType> {
@Override
public Currency convert(String text) {
MyType object = new MyType();
// do some more work here...
return object;
}
}
Jetzt kann ich in meiner Bewerbung eine Konvertierung von durchführenString
zuMyType
und es funktioniert gut:
@Autowired
private ConversionService cs;
public void doIt() {
MyType object = cs.convert("Value1", MyType.class);
}
Mir ist aber auch aufgefallen, dass ich zum Beispiel denselben Konverter in meinem MVC-Controller verwenden kann und das funktioniert auch irgendwie mit Listen:
@RequestMapping(method = RequestMethod.GET, value = "...")
@ResponseBody
public final String doIt(@RequestParam("param1") List<MyType> objects) throws Exception {
// ....
}
Also, wenn ich einreicheparam1=value1,value2
im controller bekomme ich einList<MyType>
mit zwei Elementen. Spring teilt den String also durch Kommas auf und konvertiert dann jedes Element einzeln inMyType
. Kann man das auch programmatisch machen?
Ich würde so etwas brauchen:
List<MyType> objects = cs.convert("Value1,Value2", List<MyType>.class);