我正在使用 Spring 的转换服务,并在其中注册了我自己的转换器:
public class MyTypeConverter implements Converter<String, MyType> {
@Override
public Currency convert(String text) {
MyType object = new MyType();
// do some more work here...
return object;
}
}
现在在我的应用程序中,我可以进行从String
to 的转换,MyType
并且效果很好:
@Autowired
private ConversionService cs;
public void doIt() {
MyType object = cs.convert("Value1", MyType.class);
}
但我也注意到,例如,我可以在我的 MVC 控制器中使用相同的转换器,并且它也可以在某种程度上与列表一起使用:
@RequestMapping(method = RequestMethod.GET, value = "...")
@ResponseBody
public final String doIt(@RequestParam("param1") List<MyType> objects) throws Exception {
// ....
}
因此,如果我确实在控制器中提交param1=value1,value2
,我确实会收到其中List<MyType>
包含两个元素的 a。所以 spring 确实用逗号分割字符串,然后将每个元素分别转换为MyType
. 是否也可以以编程方式执行此操作?
我需要类似这样的东西:
List<MyType> objects = cs.convert("Value1,Value2", List<MyType>.class);