1. 程式人生 > >springmvc自定義引數繫結實現日期引數繫結

springmvc自定義引數繫結實現日期引數繫結

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" >