springmvc自定義引數繫結實現日期引數繫結
阿新 • • 發佈:2019-02-08
springmvc預設的引數繫結對日期型別是無效。對於controller形參中pojo物件,如果屬性中有日期型別,需要自定義引數繫結。將String型別轉化為java.util.Date型別。
第一步:定義轉化類,實現org.springframework.core.convert.converter.Converter介面,覆寫convert方法
package ssm.controller.converter;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.springframework.core.convert.converter.Converter;
public class String2DateConverter implements Converter<String,Date>{
@Override
public Date convert(String source) {
//實現 將日期串轉成日期型別(格式也可為yyyy-MM-dd HH:mm:ss)
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
try {
//轉成直接返回
return simpleDateFormat.parse(source);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//如果引數繫結失敗返回null
return null;
}
}
第二步:向處理器介面卡中注入自定義的引數繫結元件。在springmvc.xml中注入自定義的引數繫結轉化器
<mvc:annotation-driven conversion-service ="conversionService"></mvc:annotation-driven>
<!-- 配置自定義引數繫結 -->
<bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
<!-- 轉換器 -->
<property name="converters">
<list>
<!-- 注入自定義的引數繫結轉化類 -->
<bean class="ssm.controller.converter.String2DateConverter"/>
</list>
</property>
</bean>
另外,在jsp頁面中指定日期顯示的格式
需要引入標籤庫:
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<TD><fmt:formatDate value="${order.date }" pattern="yyyy-MM-dd"/></TD>
<INPUT type="date" class="form-control" id=sChannel2 value="<fmt:formatDate value='${detail.date }' pattern='yyyy-MM-dd'/>" style="WIDTH: 180px" maxLength=50 name="date" >