javascript
SpringMVC注解 @initbinder 解决类型转换问题
前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。
使用 SpringMVC 時,常遇到表單中日期字符串和 JavaBean 的 Date 類型的轉換,而 SpringMVC 默認不支持這個格式的轉換,故需要手動配置,自定義數據的綁定才能解決這個問題。
在需要日期轉換的 Controller 中使用 SpringMVC 的注解?@initbinder?和 Spring 自帶的?WebDateBinder?類來操作。
WebDataBinder 是用來綁定請求參數到指定的屬性編輯器.由于前端傳到 controller 里的值是 String 類型的,當往 Model 里 Set這個值的時候,如果 set 的這個屬性是個對象,Spring 就會去找到對應的 editor 進行轉換,然后再 SET 進去。
代碼如下:
需要在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"/>換種寫法
<mvc:annotation-driven><mvc:message-converters><bean class="org.springframework.http.converter.StringHttpMessageConverter"><constructor-arg value="UTF-8"/></bean></mvc:message-converters> </mvc:annotation-driven>拓展:
spring mvc在綁定表單之前,都會先注冊這些編輯器,Spring自己提供了大量的實現類,諸如CustomDateEditor ,CustomBooleanEditor,CustomNumberEditor等許多,基本上夠用。
使用時候調用WebDataBinder的registerCustomEditor方法
registerCustomEditor源碼:
第一個參數 requiredType 是需要轉化的類型。
第二個參數 PropertyEditor 是屬性編輯器,它是個接口,以上提到的如 CustomDateEditor 等都是繼承了實現了這個接口的PropertyEditorSupport 類。
我們也可以不使用他們自帶的這些編輯器類。
我們可以自己構造:
?
轉自:https://www.cnblogs.com/soundcode/p/6519036.html
?
另一舉例文章見 :SpringMvc 注解 @InitBinder 表單多對象精準綁定接收
總結
以上是生活随笔為你收集整理的SpringMVC注解 @initbinder 解决类型转换问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c#中设计器中窗体释放 protect
- 下一篇: 向极限挑战:算术编码 (转)