在spring中默认已经给我们提供了很多的从client到服务器的一些参数的验证器(可能也称解析器),但有些我们需要的还得自己扩展才能满足我们的需要,比如,我们通常需要解析从client端过来的字符串类型的日期格式,并且我们需要解析精确到时分秒,即 年月日时分秒的情况,这个怎么做呢,网很多了,我这里就写一下吧;
很简单,分两步:
1,解析的Java Bean类代码:
public class SystemWebBindingInitializer implements WebBindingInitializer{
@Override
public void initBinder(WebDataBinder webDataBinder, WebRequest request){
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//format: "yyyy-MM-dd HH:mm:ss" or "yyyy-MM-dd"
//binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true)); //save to below
PropertyEditor propertyEditor = new CustomDateEditor(dateFormat, true ); //true=can empty
webDataBinder.registerCustomEditor(Date.class, propertyEditor);
//可以定义不同class类型的转换器,方法跟上面的相似的,定义propertyEditor,然后注册到webDataBinder中
}
}
2,向Spring的配置文件 applicationContent.xml 配置这个Bean,目的是在spring启动时注入到其容器中,提供其它地方使用;
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" init-method="">
<property name="webBindingInitializer">
<bean class="com.xxx.kkk.validator.SystemWebBindingInitializer"></bean>
</property>
</bean>
就这么简单,方便吧,当然类存放在哪个包下自己修改路径即可,就这样可以解析client端发送过来符合 yyyy-MM-dd HH:mm:ss 格式的字符串解析成日期类型了,
怎么样,方便吧,呵呵,懒人计划...