<a href="/demo/handle06?birthday=2019-10-08">點擊測試</a>
/**
* http://localhost:8080/demo/handle06?birthday=2019-10-08
*/
@RequestMapping("/handle06")
public String handle06(Date birthday){
return "success";
}
參數轉換錯誤。報400
自定義類型轉換器:
package com.lagou.edu.converter;
import org.springframework.core.convert.converter.Converter;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* @author lyj
* @Title: DateConverter
* @ProjectName springmvc-demo
* @Description: 自定義類型轉換器,自定義完後需要註冊
* @date 2020/6/10 23:10
*/
public class DateConverter implements Converter<String, Date> {
@Override
public Date convert(String s) {
SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd");
Date parse = null;
try {
parse = simpleDateFormat.parse(s);
} catch (ParseException e) {
e.printStackTrace();
}
return parse;
}
}
springmvc.xml中註冊
<!--
自動註冊最合適的處理器映射器,處理器適配器(調用handler方法)
-->
<mvc:annotation-driven conversion-service="conversionServiceBean"/>
<!--自定義類型轉換器-->
<bean id="conversionServiceBean" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
<property name="converters">
<set>
<bean class="com.lagou.edu.converter.DateConverter"></bean>
</set>
</property>
</bean>
測試:
問題:對於同一個項目中多個日期格式的,我們可以定義多個日期轉換器,但是沒有必要,我們可以在DateConverter轉換器中catch中捕捉異常的時候再new一個新的simpleFormat的轉換對象,繼續進行轉換。