首页 > 代码库 > springmvc的类型转换
springmvc的类型转换
springmvc的类型转换
默认情况下,springmvc内置的类型转换器只能
将“yyyy/MM/dd”类型的字符串转换为Date类型的日期
情境一:
而现在我们无法得知用
户会输入什么日期格式的数据,所以,内置的类型转换器无法转换其他日期格式的类型
为了方便程序,减少代码量,我们抽离出自己的类型转换器
此种方法也有弊端,就是讲几个类唯一的继承权用在了类型转换器上,但也是没有办法的办法
步骤一:
定义自己的类型转换器 继承一个父接口 Converter<S, T>
s:代表源数据类型
T:代表目标数据类型
package cn.hmy.convertion; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.regex.Pattern; import org.springframework.core.convert.converter.Converter; public class MyConvertion implements Converter<String, Date>{ public Date convert(String source) { /*SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");*/ SimpleDateFormat sdf=getDateFormat(source); try { return sdf.parse(source); } catch (ParseException e) { e.printStackTrace(); } return null; } private SimpleDateFormat getDateFormat(String source) { //进行正则匹配 //2016-12-14 //2016/12/14 //20161214 if(Pattern.matches("^\\d{4}-\\d{2}-\\d{2}$", source)){ return new SimpleDateFormat("yyyy-MM-dd"); }else if(Pattern.matches("^\\d{4}/\\d{2}/\\d{2}$", source)){ return new SimpleDateFormat("yyyy/MM/dd"); }else if(Pattern.matches("^\\d{4}\\d{2}\\d{2}$", source)){ return new SimpleDateFormat("yyyyMMdd"); }else if(Pattern.matches("^\\d{4}年\\d{2}月\\d{2}日$", source)){ return new SimpleDateFormat("yyyy年MM月dd日"); } return null; } }
步骤二、在配置文件中注册自定义类型转化器,将该类交由spring容器管理
<!-- 01.注册自定义的类型转换器 --> <bean id="myConvertion" class="cn.hmy.convertion.MyConvertion"></bean> <!--02.注册类型转换器的服务工厂 产生转换对象 --> <bean id="convertionservice" class="org.springframework.context.support.ConversionServiceFactoryBean"> <property name="converters" ref="myConvertion"></property> </bean> <!--03. --> <mvc:annotation-driven conversion-service="convertionservice"/>
配置完成
springmvc的类型转换
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。