您可以使用Converter來執行自定義轉換。對於你的榜樣,你需要做這樣的事情:
public class WeatherConverter implements Converter<String[], Weather[]> {
@Override
public Weather[] convert(String[] source) {
if(source == null || source.length == 0) {
return new Weather[0];
}
Weather[] weathers = new Weather[source.length];
int i = 0;
for(String name : source) {
weathers[i++] = Weather.valueOf(name);
}
return weathers;
}
}
您可以使用Converter小號的任何地方,你可能想類型轉換。現在,你需要做的是註冊它:
<bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean">
<property name="converters">
<list>
<bean class="package.path.WeatherConverter"/>
</list>
</property>
</bean>
它完成了。
您可以在Spring Reference中查看更多詳情。
如果需要,您也可以查看PropertyEditor s,使用@InitBinder,可能還需要@ControllerAdvice。但是,Converters更容易使用(IMO)。