springmvc 时间格式的绑定解决

需求

前端传递一个时间过来,后台需要接收并转换为时间格式进行存储
传统的servlet中我们是怎么解决的?
我们接受到的是一个时间格式的字符串,然后使用simpledataformat类就可以解析,
在springmvc中呢?

解决方法一:

仍然使用该法方法,springmvc默认提供了request参数,我们可以把springmvc中的controller当成servlet使用
这样可以解决该问题,但是违背了我们使用框架的初衷

解决方法二:

自定义参数绑定,也就是说我们先对接受到的数据进行处理,然年在进行数据绑定

实现:
一般使用mvc:annotation-driven注解驱动加载处理器适配器,可以在这个标签上进行配置

  • 首先自定义数据转换器(字符串转时间)
@Component
public class DateConverter implements Converter<String, Date> {
    @Override
    public Date convert(String s) {
        Date date=null;
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");//转换成简单日期格式
        try {
            date=dateFormat.parse(s);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return date;
    }
}
  • 配置转换器(在springmvc的配置xml中)
<!--注解绑定-->
    <mvc:annotation-driven conversion-service="conversionService"></mvc:annotation-driven>
    <!--配置Converter转换器,转换工程(日期、去除两端空格等)-->
    <bean class="org.springframework.format.support.FormattingConversionServiceFactoryBean" name="conversionService">
        <property name="converters">
            <list>
                <bean class="com.sunwenxu.converter.DateConverter"></bean> //上面自己编辑的转换类的路径
            </list>
        </property>
    </bean>

如果使用了@RequestBody注解用于读取HTTP请求的内容(JSON字符串)#不常见#

需要这样配置xml

<!--注解驱动-->
    <mvc:annotation-driven>
        <mvc:message-converters>
            <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
                <property name="supportedMediaTypes">
                    <list>
                        <value>application/json;charset=utf-8</value>
                        <value>test/json;charset=utf-8</value>
                    </list>
                </property>
                <property name="objectMapper">
                    <bean class="com.fasterxml.jackson.databind.ObjectMapper">
                        <property name="dateFormat">
                            <bean class="java.text.SimpleDateFormat">
                                <constructor-arg type="java.lang.String" value="yyyy-MM-dd HH:mm:ss"></constructor-arg>
                            </bean>
                        </property>
                    </bean>
                </property>
            </bean>
        </mvc:message-converters>
    </mvc:annotation-driven>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值