日期类型转换器:
在前端页面的日期文本框中输入2020/06/26,SpringMVC可以自动对该日期进行转换,但是当输入的是2020-06-26时,SpringMVC无法对其自动进行转换格式,此时就需要我们自定义类型转换器了。
没有配置自定义转换器时运行结果:
接下来就需要进行配置日期转换器:
//任何自定义转换器都必须实现Converter接口,该接口有两个泛型,S:数据源的泛型,T:目标类型的泛型
/**
* @param <S> the source type
* @param <T> the target type
*/
public interface Converter<S, T> {
@Nullable
T convert(S source);
}
/**
* 自定义类型转换器
*/
public class StringToDateConverter implements Converter<String, Date> {
@Override
public Date convert(String source) {
if(source == null){
throw new RuntimeException("请传入参数!");
}
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
try {
return df.parse(source);
} catch (Exception e) {
throw new RuntimeException("类型转换异常");
}
}
}
在springmvc.xml中配置自定义类型转换器
<!--配置自定义类型转换器-->
<bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean">
<property name="converters">
<set>
<bean class="cn.itcast.converter.StringToDateConverter"></bean>
</set>
</property>
</bean>
<!--配置springMVC注解扫描支持-->
<mvc:annotation-driven conversion-service="conversionService"/>
运行演示:
运行结果: