SpringMVC自定义参数绑定Date()日期类型

1.需求:

在商品修改页面可以修改商品的生产日期,并且根据业务需求自定义日期格式。

2.需求分析:

由于日期数据有很多种格式,springmvc没办法把字符串转换成日期类型。所以需要自定义参数绑定。

前端控制器接收到请求后,找到注解形式的处理器适配器,对RequestMapping标记的方法进行适配,并对方法中的形参进行参数绑定。可以在springmvc处理器适配器上自定义转换器Converter进行参数绑定。

一般使用<mvc:annotation-driven/>注解驱动加载处理器适配器,可以在此标签上进行配置。

3.JSP页面:

<tr>
                <td>商品生产日期</td>
                <td><input type="text" name="createtime"
                    value="<fmt:formatDate value="${item.createtime}" pattern="yyyy-MM-dd HH:mm:ss"/>" /></td>
            </tr>

 4.自定义Converter:

package com.wenhao.conversion;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

import org.springframework.core.convert.converter.Converter;

/**
 * 转换日期类型的数据
 * S : 页面传递过来的类型
 * T : 转换后的类型
 * @author QWH
 *
 */
public class DateConveter implements Converter<String, Date>{

    public Date convert(String source) {
        try {
            if(null != source){//2018:10-05 11_43-50
                DateFormat df = new SimpleDateFormat("yyyy:MM-dd HH_mm-ss");
                return df.parse(source);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

}

5.配置Converter

    <!-- 处理器映射器 -->
    <!-- <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/>    -->
    <!-- 处理器适配器 -->
    <!-- <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/> -->
        
    <!-- 注解驱动 -->
    <mvc:annotation-driven conversion-service="conversionServiceFactoryBean"/>
        
     <!-- 配置Conveter转换器  转换工厂 (日期、去掉前后空格)。。 -->
 <bean id="conversionServiceFactoryBean" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
         <!-- 配置 多个转换器-->
         <property name="converters">
             <list>
                <bean class="com.wenhao.conversion.DateConveter" />
            </list>
         </property>
     </bean>

猜你喜欢

转载自blog.csdn.net/A_jungle/article/details/82383495