金沙国际app-金沙国际手机app下载

金沙国际app包括教育和科研机构建设、学科共建等,欢迎来到金沙国际手机app下载这里有多种线上娱乐游戏,金沙国际app获颁“创意中国榜”中国文化创意产业领军企业,是一家专业从事网络休闲平台游戏开发、运营的服务性企业。

当前位置:金沙国际app > 网络世界 > 金沙国际appspringmvc关于前台日期作为实体类对象

金沙国际appspringmvc关于前台日期作为实体类对象

文章作者:网络世界 上传时间:2019-10-11

springmvc关于前台日期作为实体类对象参数类型转换错误,springmvc实体

页面报错:

金沙国际app 1

 

后台错误:

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:在对应的实体类属性上加入   @DateTimeFormat(pattern = "yyyy-MM-dd")

金沙国际app 2

 

解决方案2:不使用  <mvc:annotation-driven/>注解

使用  DefaultAnnotationHandlerMapping  和   AnnotationMethodHandlerAdapter  注解驱动配置 

在对应的实体类属性上加入   @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"/>


 1 public class BaseController {
 2     @InitBinder
 3     public void initBinder(WebDataBinder binder) {
 4         /**
 5          * 第一种方式:使用WebDataBinder注册一个自定义的编辑器,编辑器是日期类型
 6          * 使用自定义的日期编辑器,日期格式:yyyy-MM-dd,第二个参数为是否为空   true代表可以为空
 7          */
 8         binder.registerCustomEditor(Date.class, new CustomDateEditor(
 9                 new SimpleDateFormat("yyyy-MM-dd"), true));
10     }
11 }

 或者使用下面的方式

 1 public class BaseController {
 2     @InitBinder
 3     public void initBinder(WebDataBinder binder) {
 4         /**
 5          * 方式二:使用WebDataBinder注册一个自定义的编辑器,编辑器是日期类型
 6          * 使用属性编辑器实现:重载setAsText,getAsText
 7          */
 8         binder.registerCustomEditor(Date.class, new PropertyEditorSupport() {
 9 
10             @Override
11             public String getAsText() {
12                 return new SimpleDateFormat("yyyy-MM-dd")
13                         .format((Date) getValue());
14             }
15 
16             @Override
17             public void setAsText(String text) {
18                 try {
19                     setValue(new SimpleDateFormat("yyyy-MM-dd").parse(text));
20                 } catch (Exception e) {
21                     e.printStackTrace();
22                     setValue(null);
23                 }
24             }
25 
26         });
27     }
28 }

 

http://www.bkjia.com/Javabc/1216734.htmlwww.bkjia.comtruehttp://www.bkjia.com/Javabc/1216734.htmlTechArticlespringmvc关于前台日期作为实体类对象参数类型转换错误,springmvc实体 页面报错: 后台错误: Field error in object 'user' on field 'birthday': rejecte...

本文由金沙国际app发布于网络世界,转载请注明出处:金沙国际appspringmvc关于前台日期作为实体类对象

关键词: