頁面報錯:
成都創(chuàng)新互聯(lián)專注于扎蘭屯企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,商城網(wǎng)站建設(shè)。扎蘭屯網(wǎng)站建設(shè)公司,為扎蘭屯等地區(qū)提供建站服務(wù)。全流程按需開發(fā),專業(yè)設(shè)計,全程項目跟蹤,成都創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
后臺錯誤:
Field error in object 'user' on field 'birthday': rejected value [2013-06-24]; codes [typeMismatch.user.birthday,typeMismatch.birthday,typeMismatch.java.util.Date,typeMismatch]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [user.birthday,birthday]; arguments []; default message [birthday]]; default message [Failed to convert property value of type 'java.lang.String' to required type 'java.util.Date' for property 'birthday'; nested exception is org.springframework.core.convert.ConversionFailedException: Failed to convert from type java.lang.String to type java.util.Date for value '2013-06-24'; nested exception is java.lang.IllegalArgumentException]
解決方案1:在對應(yīng)的實體類屬性上加入 @DateTimeFormat(pattern = "yyyy-MM-dd")
解決方案2:不使用 <mvc:annotation-driven/>注解
使用 DefaultAnnotationHandlerMapping 和 AnnotationMethodHandlerAdapter 注解驅(qū)動配置
在對應(yīng)的實體類屬性上加入 @DateTimeFormat(pattern = "yyyy-MM-dd")
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"/> <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="webBindingInitializer"> <bean class="org.springframework.web.bind.support.ConfigurableWebBindingInitializer"> <property name="conversionService"> <bean class="org.springframework.format.support.FormattingConversionServiceFactoryBean"/> </property> </bean> </property> </bean>
3、使用 @InitBinder注解,注冊一個父類Controller(BaseController),其他Controller去繼承它
Springmvc配置文件 <bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"/> <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"/>
public class BaseController { @InitBinder public void initBinder(WebDataBinder binder) { /** * 第一種方式:使用WebDataBinder注冊一個自定義的編輯器,編輯器是日期類型 * 使用自定義的日期編輯器,日期格式:yyyy-MM-dd,第二個參數(shù)為是否為空 true代表可以為空 */ binder.registerCustomEditor(Date.class, new CustomDateEditor( new SimpleDateFormat("yyyy-MM-dd"), true)); } }
或者使用下面的方式
public class BaseController { @InitBinder public void initBinder(WebDataBinder binder) { /** * 方式二:使用WebDataBinder注冊一個自定義的編輯器,編輯器是日期類型 * 使用屬性編輯器實現(xiàn):重載setAsText,getAsText */ binder.registerCustomEditor(Date.class, new PropertyEditorSupport() { @Override public String getAsText() { return new SimpleDateFormat("yyyy-MM-dd") .format((Date) getValue()); } @Override public void setAsText(String text) { try { setValue(new SimpleDateFormat("yyyy-MM-dd").parse(text)); } catch (Exception e) { e.printStackTrace(); setValue(null); } } }); } }
以上這篇解決springmvc關(guān)于前臺日期作為實體類對象參數(shù)類型轉(zhuǎn)換錯誤的問題就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持創(chuàng)新互聯(lián)。
文章名稱:解決springmvc關(guān)于前臺日期作為實體類對象參數(shù)類型轉(zhuǎn)換錯誤的問題
文章源于:http://redsoil1982.com.cn/article6/joccog.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動態(tài)網(wǎng)站、網(wǎng)站導(dǎo)航、網(wǎng)站收錄、Google、標(biāo)簽優(yōu)化、建站公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)