1. 程式人生 > >SpringMVC的引數繫結——日期型別

SpringMVC的引數繫結——日期型別

- 前言

讀完本文將會學到以下內容:

  • 日期型別的引數繫結

學習本文需要安裝的軟體:

  • JDK1.8 、IDEA2017.3、Maven3.3.3、Tomcat7.0.64

- 日期型別的引數繫結

1.準備POJO
public class TestUser {
    private Integer id;
    private String name;
    private Date birthday;
    //get,set方法
}
2.測試程式碼
//引數繫結:日期型別
//測試URL--http://localhost:8080/params2.test?id=23&name=xiaoming&birthday=2017-10-10
@RequestMapping(value = "/params2.test") public void bindParams2(int id, String name, Date birthday) { System.out.println("id=" + id); System.out.println("name=" + name); System.out.println("birthday=" + birthday); }
3.注意事項

3.1 URL中的屬性值預設是字串。bindParams2的形參birthday被賦值為字串,想轉為Date型別,程式碼必報錯。

4.解決辦法

相信已有人想到,使用SimpleDateFormat字串型別日期轉為Date型別日期。對,沒錯,就是醬紫!
但是但是,前端傳的引數在哪裡轉型別呢?這就要用到SpringMVC的轉化器Converter
4.1 在SpringMVC配置檔案中配置自定義轉換器

<!-- 在SpringMVC配置檔案中配置自定義轉換器 -->
<mvc:annotation-driven conversion-service="conversionService"></mvc:annotation-driven>
<bean id="conversionService"
class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
<property name="converters"> <!-- 自定義轉換器的類名 --> <bean class="cn.itcast.core.util.DateConverter"></bean> </property> </bean>

4.2 編寫自定義轉換器

//編寫自定義轉換器
public class DateConverter implements Converter<String, Date> {
    public Date convert(String source) {
        //實現將字串轉成日期型別(格式是yyyy-MM-dd)
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
        try {
            return dateFormat.parse(source);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return null; //如果引數繫結失敗返回null
    }
}

- 後記

下文將會介紹以下內容: