1. 程式人生 > >springMVC註解@initbinder

springMVC註解@initbinder

搞了一上午的bug最終還是因為自己springMVC的註解不熟悉的原因,特記錄。

在實際操作中經常會碰到表單中的日期 字串和Javabean中的日期型別的屬性自動轉換, 而springMVC預設不支援這個格式的轉換,所以必須要手動配置, 自定義資料型別的繫結才能實現這個功能。

比較簡單的可以直接應用springMVC的註解@initbinder和spring自帶的WebDataBinder類和操作

@InitBinder
    public void initBinder(WebDataBinder binder) {
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
        dateFormat.setLenient(false);
        binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true));
    }
還要在springMVC配置檔案中加上
<!-- 解析器註冊 -->
    <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
        <property name="messageConverters">
            <list>
                <ref bean="stringHttpMessageConverter"/>
            </list>
        </property>
    </bean>
    <!-- String型別解析器,允許直接返回String型別的訊息 -->
    <bean id="stringHttpMessageConverter" class="org.springframework.http.converter.StringHttpMessageConverter"/>
這樣就可以直接將上傳的日期時間字串繫結為日期型別的資料了