自定义数据绑定(转换器和格式化)

一般情况下,使用基本数据类型和POJO类型的参数数据已经能够满足需求,然而有些特**殊类型的参数时无法在后台进行直接转换的,**但也有特殊数据类型无法直接及逆行数据绑定,必须先经过数据转换,例如日期数据。

针对特殊数据类型,就需要开发者 自定义转化器 或 格式化

转换器:
spring框架提供了一个Converter用户将一种类型的对象转化为另一种类型的对象。
自定义Converter类需要实现org.springramework.core.convert.converyer.Converter接口。

public interface Converter<ST>{
   T convert(S source);
   //S时源类型),T是目标类型
}

格式化:
Formatter与Converter的作用相同,只是Formatter的源类型必须是一个String类型,而Converter可以是任意类型。
使用Formatter自定义转化器需要实现org.springframework.format.Formatter接口。

public interface Formatter<T>extends Printer<T>Paster<T>{}

日期特殊类转换器和格式化。

转换器

第一步编写控制类

//日期控制器
@Controller
public class DateController {
    @RequestMapping("/customDate")
    public String customDate(Date date){
        System.out.println("date="+date);
        return "success";
    }
}

第二步在Springmvc -config.xml 中配置转换器

<bean id="conversionServer" class="org.springframework.context.support.ConversionServiceFactoryBean">
<property name="converters">
    <set>
        <bean class="org.chen.Converter.DateConverter"></bean>
    </set>
</property>
</bean>//到这一步我们的转换器已经配置成功

第三步 将配置的converServer配置到spring中

    <mvc:annotation-driven conversion-service="conversionServer"/>
 
 //表头加入 mvc
xmlns:mvc="http://www.springframework.org/schema/mvc" 
 http://www.springframework.org/schema/mvc
 http://www.springframework.org/schema/mvc/spring-mvc.xsd

第四步 测试

利用Post请求输入获得的结果
在这里插入图片描述

格式化

第一步创建一个自定义转换器

    /*
    使用Formatter自定义转换器
    *
    *
    * */
public class DateFormatter implements Formatter<Date> {
//   声明输入的格式    
    private String datePattern="yyyy-MM-dd HH:mm:ss";
//   声明 simpleDateFormat对象
    private SimpleDateFormat simpleDateFormat;
    public String print(Date date, Locale arg1){
        return  new SimpleDateFormat().format(date);
    }
    //先执行parse方法
    public Date parse(String source, Locale locale) throws ParseException{
        simpleDateFormat  =new SimpleDateFormat(datePattern);
        return simpleDateFormat.parse(source);
    }
}

第二步 同样的在springmvc-config.xml中配置自定义转换器的配置文件

<!--    自定义类型格式化转换器配置-->
    <bean id="conversionServer" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
        <property name="formatters">
            <set>
                <bean class="org.chen.Converter.DateFormatter"></bean>
            </set>
        </property>
    </bean>

第三步 将自定义转化器配置到Spring中

<mvc:annotation-driven conversion-service="conversionServer"/>

第四步 运行 测试结果
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值