Spring Conversion Service:如何将字符串转换为列表?

我正在使用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到的转换,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>包含两个元素的。因此spring会用逗号将String分割,然后将每个元素分别转换为MyType。是否可以通过编程方式执行此操作?

我需要类似的东西:

List<MyType> objects = cs.convert("Value1,Value2", List<MyType>.class);

回答:

我自己找到了非常接近的解决方案:

List<MyType> objects = Arrays.asList(cs.convert("Value1,Value2", MyType[].class));

如果Conversion Service自动创建列表会更好,但是Arrays.asList()您自己动手做这不是很大的开销。

以上是 Spring Conversion Service:如何将字符串转换为列表? 的全部内容, 来源链接: utcz.com/qa/397851.html

回到顶部