Servicio de conversión de Spring: ¿cómo convertir la cadena a la lista <MyType>?
Estoy usando el servicio de conversión de Spring y tengo mi propio convertidor registrado:
public class MyTypeConverter implements Converter<String, MyType> {
@Override
public Currency convert(String text) {
MyType object = new MyType();
// do some more work here...
return object;
}
}
Ahora en mi aplicación puedo hacer la conversión deString
aMyType
y funciona bien:
@Autowired
private ConversionService cs;
public void doIt() {
MyType object = cs.convert("Value1", MyType.class);
}
Pero también noté, por ejemplo, que puedo usar el mismo convertidor dentro de mi controlador MVC, y de alguna manera funciona con listas también:
@RequestMapping(method = RequestMethod.GET, value = "...")
@ResponseBody
public final String doIt(@RequestParam("param1") List<MyType> objects) throws Exception {
// ....
}
Así que si me sometoparam1=value1,value2
en el controlador recibo unList<MyType>
con dos elementos en ella. Así que Spring divide la cadena por comas y luego convierte cada elemento por separado enMyType
. ¿Es posible hacer esto también programáticamente?
Necesitaría algo similar a esto:
List<MyType> objects = cs.convert("Value1,Value2", List<MyType>.class);