我们在使用springmvc的时候,可能会需要自定义一些配置来满足我们的实际开发需求,比如说日期修改的例子,springmvc由于不知道我们需要什么格式的日期,所以需要我们手动设置,大概的步骤如下:
第一步:自定义一个类然后实现Converter接口,设置相关信息。
import org.springframework.core.convert.converter.Converter;
import javax.xml.crypto.Data;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* @author: 有坚持就好
* @create: 2023/6/28 - 9:15
* @version: v1.0
*/
public class MyStringDateConverter implements Converter<String, Date> {
// private String pattern = "yyyy-MM-dd";
private String pattern; // 这里设置成员变量主要是后面在配置的时候可以在xml中设置具体的格式
public String getPattern() {
return pattern;
}
public void setPattern(String pattern) {
this.pattern = pattern;
}
@Override// 将source转换成Date格式并返回给springmvc
public Date convert(String source) {
try {
Date parse = new SimpleDateFormat(pattern).parse(source);
return parse;
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}
}
第二步:将我们写好的配置类交给springmvc管理。
<!--将我们自定义的转换器,交给spring容器管理-->
<bean id="myConversionService" class="org.springframework.context.support.ConversionServiceFactoryBean">
<property name="converters">
<set>
<bean class="com.jsckot.common.MyStringDateConverter">
<property name="pattern" value="yyyy-MM-dd HH:mm:ss"/>
</bean>
</set>
</property>
</bean>
<!--开启mvc的注解驱动-->
<mvc:annotation-driven conversion-service="myConversionService"></mvc:annotation-driven>
第三步:我们就可以正常使用了。
前端将name为date1的字符串传递给后端并且后端接受的类型为Date,就可以完成日期格式的转换了。前提是前端传过来的日期格式和我们在bean中设置的日期格式要严格对应上,否则会报错。错误类型如下: