springMVC註解@initbinder
阿新 • • 發佈:2019-01-23
搞了一上午的bug最終還是因為自己springMVC的註解不熟悉的原因,特記錄。
在實際操作中經常會碰到表單中的日期 字串和Javabean中的日期型別的屬性自動轉換, 而springMVC預設不支援這個格式的轉換,所以必須要手動配置, 自定義資料型別的繫結才能實現這個功能。
比較簡單的可以直接應用springMVC的註解@initbinder和spring自帶的WebDataBinder類和操作
還要在springMVC配置檔案中加上@InitBinder public void initBinder(WebDataBinder binder) { SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); dateFormat.setLenient(false); binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true)); }
這樣就可以直接將上傳的日期時間字串繫結為日期型別的資料了<!-- 解析器註冊 --> <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"/>