首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在Springboot中添加@EnableWebMvc会将日期输出从字符串更改为数组

在Spring Boot中,使用@EnableWebMvc注解会启用Spring MVC的配置,并且会覆盖Spring Boot的自动配置。具体来说,它会禁用Spring Boot对日期类型的自动转换,导致日期输出从字符串更改为数组。

@EnableWebMvc注解是用于自定义Spring MVC配置的注解。它允许开发人员完全控制Spring MVC的配置,包括添加自定义的拦截器、消息转换器、异常处理器等。

当使用@EnableWebMvc注解时,Spring Boot的自动配置将不再生效,包括日期类型的自动转换。默认情况下,Spring Boot会将日期类型的属性转换为字符串进行输出,以便更好地满足前端的需求。但是,启用@EnableWebMvc后,日期类型的属性将以数组的形式进行输出。

对于解决这个问题,可以考虑以下几种方法:

  1. 不使用@EnableWebMvc注解:如果不需要自定义Spring MVC的配置,可以不使用@EnableWebMvc注解,这样就可以保留Spring Boot的自动配置,日期类型的输出将保持为字符串。
  2. 自定义日期转换器:可以自定义一个日期转换器,将日期类型的属性转换为字符串进行输出。可以通过实现WebMvcConfigurer接口,并重写configureMessageConverters方法来添加自定义的消息转换器。
  3. 使用@JsonFormat注解:可以在需要输出日期的属性上使用@JsonFormat注解,指定日期的格式。这样可以保持日期的输出为字符串,而不是数组。

总结起来,在Spring Boot中添加@EnableWebMvc会禁用Spring Boot的自动配置,导致日期输出从字符串更改为数组。为了解决这个问题,可以选择不使用@EnableWebMvc注解,或者自定义日期转换器,或者使用@JsonFormat注解来指定日期的格式。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

微服务架构Day03-SpringBoot之web开发配置

的模版中大量的与Java对象交互,违背了简单的原则,尽管也可以将代码转入控制器实现 freemarker能做到,而velocity无法做到的: 日期和数字的支持: 比较和格式化显示日期或者时间值...这个在建立 “宏库” 内置与Java语言无关的字符串,列表,Map的操作方法 能提示模版的拼写错误以及其他错误 当访问一个不存在的变量时,freemarker执行模版时会报错 通过配置,可以指定freemarker...发生此类错误时停止执行,还是忽略该错误,同时freemarker会在日志记录此问题 输入错误的指令名称,freemarker将抛出一个异常 更高级的文本输出工具: 将模版块封装在一组标记,这样可以应用...BeanNameViewResolver(视图解析器:根据方法的返回值得到视图对象,视图对象决定转发、重定向) 1.ContentNegotiatingViewResolver: 组合所有的视图解析器 1.1:如何定制配置-容器添加一个定制的视图解析器...配置类中标注@EnableWebMvc。所有的SpringMVC的默认配置都被禁用了。

89910

4. 请求与响应

,@RequestParam 绑定参数关系 对于简单数据类型使用数组会比集合简单些。...@EnableWebMvc 注解 (4)Controller 方法的参数前添加@RequestBody 注解 ‍ 4.5 知识点 1:@EnableWebMvc 名称 @EnableWebMvc 类型...步骤 1:编写方法接收日期数据 UserController 类添加方法,把参数设置为日期类型 @RequestMapping("/dataParam") @ResponseBody public...步骤 5:更换日期格式 为了能更好的看到程序运行的结果,我们方法添加一个日期参数 @RequestMapping("/dataParam") @ResponseBody public String...,错误的原因是将2088-08-08​ 转换成日期类型的时候失败了,原因是 SpringMVC 默认支持的字符串日期的格式为yyyy/MM/dd​,而我们现在传递的不符合其默认格式,SpringMVC

13910
  • 伙计,来跟我一起学SpringBoot! 【第一弹】

    ,布尔),字符串默认不用加上单引号或者双引号 " ":双引号;不会转义字符串里面的特殊字符;特殊字符会作为本身想表示的意思输入:name: "zhangsan \n lisi" 输出:zhangsan...换行 lisi ' ':单引号;会转义特殊字符,特殊字符最终只是一个普通的字符串数据输入:name: ‘zhangsan \n lisi’ 输出:zhangsan \n lisi 2)值的写法 1)对象...Spring配置文件 * * 配置文件中用标签添加组件 * */ @Configuration public class MyAppConfig { //将方法的返回值添加到容器...logger.error("这是error日志..."); } SpringBoot修改日志的默认配置 日志输出格式 %d:表示日期时间 %thread: 表示线程名 %-5level:级别从左显示...Converter:类型转换器 Formatter:格式化器 @Bean @ConditionalOnProperty(prefix = "spring.mvc", name = "date-format")//文件配置日期格式化的规则

    84420

    【问题解决】解决 swagger2 默认地址失效

    这是因为 SpringBoot 2.6.1 之后,SpringMVC 处理程序映射匹配请求路径的默认策略已从 AntPathMatcher 更改为 PathPatternParser。...但需要注意的是,如果使用了 @EnableWebMvc 注解,则默认情况下会禁用 SpringBoot 的自动配置,因为 @EnableWebMvc 已经提供了类似的功能。...如果想要同时使用 SpringBoot 的自动配置和@EnableWebMvc,可以通过配置类上添加 @Import({WebMvcAutoConfiguration.class}) 注解来实现。...使用 @EnableWebMvc 注解时,会覆盖掉 SpringBoot 自动配置的 WebMvcAutoConfiguration,可能导致 Swagger 的默认地址 /swagger-ui.html...比如可以配置类添加以下内容: @Configuration @EnableSwagger2 public class SwaggerConfig { @Bean public Docket

    36910

    Spring学习笔记(十九)——springboot Web开发和模板引擎thymeleaf语法使用

    xxx xxxxAutoConfiguration:帮我们给容器自动配置组件; xxxxProperties:配置类来封装配置文件的内容; 2、SpringBoot对静态资源的映射规则(自动配置);...七、servletContext:(仅在web上下文)的 ServletContext 对象 这里以常用的Session举例,用户刊登成功后,会把用户信息放在Session,Thymeleaf通过内置对象将值...对SpringMVC的自动配置不需要了,所有都是我们自己配置;所有的SpringMVC的自动配置都失效了 我们需要在配置类添加@EnableWebMvc即可; //使用WebMvcConfigurerAdapter...(ViewResolver)将用户配置的和自己默认的组合起来; ​ 2)、SpringBoot中会有非常多的xxxConfigurer帮助我们进行扩展配置 ​ 3)、SpringBoot中会有很多的...文件夹或与其并列的文件夹下建立public文件夹,public文件夹下的html文件可以通过浏览器输入文件+后缀名的方式直接访问的.

    81820

    SpringBoot与Web开发

    ; 3、模版引擎 JSP、Velocity、Freemarker、Thymeleaf; SpringBoot推荐的Thymeleaf; 语法简单,功能更强大; 1、引入thymeleaf; <dependency...ContentNegotiatingViewResolver 组合所有的视图解析器; 如何定制:我们可以自己给容器添加一个 视图解析器;自动的将其组合进来; Support for serving static...请求和响应的;User--json; HttpMessageConverters 是从容器确定的;获取所有的 HttpMessageConverters ; 只需要自己将自己的组件注册容器...对SpringMVC的自动配置不需要了,所有都是我们自己配置;所有的SpringMVC的自动配置都失效了; 我们需要在 配置类添加@EnableWebMvc即可; /** * Created by...ViewResolver)将用户配置的 和自己默认的组合起来; 2)、SpringBoot,会有非常多的xxConfigurater帮助我们进行扩展配置; 6、RestfulCRUD 1)、默认访问首页

    84940

    Java学习笔记-全栈-web开发-20-SpringBoot核心技术

    : “zhangsan \n lisi”:输出;zhangsan 换行 lisi ‘’:单引号;会转义特殊字符,特殊字符最终只是一个普通的字符串数据 name: ‘zhangsan \n lisi’...一但这个配置类生效;这个配置类就会给容器添加各种组件;这些组件的属性是对应的properties类获取的,这些类里面的每一个属性又是和配置文件绑定的; 5、所有配置文件能配置的属性都是xxxxProperties...默认写好的自动配置类; 3)、再来看这个自动配置类到底配置了哪些组件(只要我们要用的组件有,则不需要再配置了) 4)、给容器自动配置类添加组件的时候,会properties类获取某些属性。...格式化器; 2019.12.17===Date; @Bean @ConditionalOnProperty(prefix = "spring.mvc", name = "date‐format")//文件配置日期格式化的规则...只需要在配置类添加@EnableWebMvc即可; //使用WebMvcConfigurerAdapter可以来扩展SpringMVC的功能 @EnableWebMvc @Configuration

    68840

    详细SpringBoot教程之Web开发(一)

    @Configuration的type类,WebMvcConfigurer但不添加 @EnableWebMvc(因为@EnableWebMvc会关闭Spring Boot MVC的默认配置,而转向需要读取我们自己添加的配置...如果你想对Spring MVC的完全控制,你可以添加自己的@Configuration注解为@EnableWebMvc,或者添加自己的@Configuration-annotated DelegatingWebMvcConfiguration...的Javadoc中所述@EnableWebMvc。...上面我们可以自己编写类扩展SpringMVC的相关配置,如果我们再在配置类上加上@EnableWebMvc注解,是啥意思呢,也就是说我们将全面接管SpringMVCSpringBoot的配置,SpringBoot...会自动配置SpringMVC的默认依赖,如果我们使用@EnableWebMvc,则@EnableWebMvc会将WebMVCConfigurationSupport组件导入进来,而导入的WebMVCConfigurationSupport

    64820

    自定义SpringBoot默认MVC配置?好几个坑,这篇文章必须珍藏

    到了Spring 5.0之后,也就是Spring Boot2.0版本,JDK基于Java8来实现了,而在Java8可以将接口的方法定义为default。...@EnableWebMvc使用场景 很多代码示例,你还会看到它不仅实现了WebMvcConfigurer接口,还在实现类上使用了@EnableWebMvc注解,此时你需要注意了。...如果你想完全控制Spring MVC,你可以实现类上再添加上@EnableWebMvc注解。 也就是说@EnableWebMvc注解并不是必须配置,只有在要完全覆盖默认配置的情况下才会使用。...,比如将字符串转换为日期类型,可通过DateFormatter类来实现自动转换。...最关键的是通过不同的表现形式,不断追踪到底层实现,最终达到底层原理到上层应用融会贯通的效果。所以,实践的过程我们不要忽略掉任何一个小的异常或bug,深入追加一下就打开一片新的天地。

    4.1K54

    springbootWebMvcConfigurationSupport、WebMvcConfigurationAdapter区别

    @EnableWebMvc+extends WebMvcConfigurationAdapter,扩展的类重写父类的方法即可,这种方式会屏蔽springboot的WebMvcAutoConfiguration...,扩展的类重写父类的方法即可,这种方式会屏蔽springboot的@WebMvcAutoConfiguration的设置 extends WebMvcConfigurationAdapter...,扩展的类重写父类的方法即可,这种方式依旧使用springboot的WebMvcAutoConfiguration的设置 springboot2.x,WebMvcConfigurationAdapter...已经过时,通过实现接口WebMvcConfigurer可以替代原有规则 默认情况下,springboot是启用WebMvcAutoConfiguration,这点可以spring-boot-autoconfigure.jar...,同时setConfigurers可以看到,所有WebMvcConfigurer的子类也会被添加到配置

    2.8K30

    SpringBoot | SpringBoot Web开发

    SpringBoot就会默认将我们的需要的模块自动配置好; 手动配置文件配置部分配置项目就可以运行起来了。...SpringBoot,SpringMVC的web配置都在 WebMvcAutoConfiguration 这个配置类里面;有一个方法: addResourceHandlers 添加资源处理。...可以自己给容器中去添加一个视图解析器;这个类就会帮我们自动的将它组合进来; 主程序中去写一个视图解析器来试试; @Bean // 放到bean public ViewResolver myViewResolver...启动我们的项目,然后浏览器随便访问一个页面,看一下Debug信息; 找到视图解析器,看到我们自己定义的就在这里了; 所以说,如果想要使用自己定制化的东西,只需要给容器添加这个组件就好了!...全面接管即:SpringBoot对SpringMVC的自动配置不需要了,所有都是我们自己去配置! 只需我们的配置类要加一个@EnableWebMvc

    1K10

    SpringBoot之Web开发

    一、Web 开发 自动配置原理: xxxAutoConfiguration: 帮助我们给容器自动配置组件; xxxProperyties: 配置类来 1、 SpringBoot 对静态资源的映射规则...格式化器: 2020.8.29 == Date; @Bean @ConditionalOnProperty(prefix = "spring.mvc", name = "date‐format")//文件配置日期格...SpringMVC 用来转换 Http 请求和响应的 :User—json; HttpMessageConverters 是从容器确定;获取所有的 HttpMessageConverter; 给自己的容器添加...对 SpringMVC 的自动配置不需要了,所有都是我们自己配置;所有的 SpringMVC 的自动配置都失效了 我们需要在配置类添加@EnableWebMvc 即可; // 使用WebMvcConfigurer...模式: SpringBoot 自动配置很多组件的时候,先看容器中有没有自己配置的(@Bean、@Component)如果有就用户自己配置,如果没有,才自动配置和自己默认组合起来; SpringBoot

    99810

    搭建SpringBoot项目问题汇总

    springboot配置文件可以修改日期格式 日期格式转换出现问题,检查前端页面传来的日期格式和后端能接受日期格式 按照上图所示,后端配置的日期格式为:yyyy-MM-dd hh:mm 查看前端update...页面设置的日期格式:yyyy-MM-dd HH:mm 由此可以发现 HH 和 hh格式不一样,才导致了错误 HH:24小时制 hh: 12小时制 修改后端配置文件日期格式与前端保持一致即可解决问题...原因:未知 解决方式:降低springboot版本 原版本2.7.3: 改为2.6.11: 4、Caused by: org.xml.sax.SAXParseException: 前言中不允许有内容...是否有xml文件指定的路径,如下图: 往往这几处没有问题了,基本就不会报错了。...分析:报错原因,用户名填写错误会导致数据库通过用户名查找用户信息会查不到这个用户,所以user.getUserName()就会报空指针异常 解决办法:Controller添加一个对用户是否为空的判断

    3.3K30

    关于SpringMVC自动配置

    Spring MVC auto-configuration Spring Boot 自动配置好了SpringMVC 以下是SpringBoot对SpringMVC的默认配置:==(WebMvcAutoConfiguration...ContentNegotiatingViewResolver:组合所有的视图解析器的; ==如何定制:我们可以自己给容器添加一个视图解析器;自动的将其组合进来;== Support for serving...2017.12.17===Date; @Bean @ConditionalOnProperty(prefix = "spring.mvc", name = "date-format")//文件配置日期格式化的规则...} ==自己添加的格式化器转换器,我们只需要放在容器即可== Support for HttpMessageConverters (see below)....; ==自己给容器添加HttpMessageConverter,只需要将自己的组件注册容器(@Bean,@Component)== Automatic registration of MessageCodesResolver

    69300

    SpringBoot源码学习系列之SpringMVC自动配置

    同理,也是Spring容器里将这几种类拿过来 ?...官方文档里也进行了比较详细描述,Springboot已经为我们自动配置了json的、xml的自动转换器,当然你也可以自己添加 ? 5、支持MessageCodesResolver ?...Springboot默认的首页是index.html,也就是你classpath路径丢个index.html文件,就被Springboot默认为首页,或者说欢迎页 如图示代码,就是遍历静态资源文件,然后获取...注意: ok,Springboot官方文档里还有这样的描述,如图所示 ? 意思是,使用webmvcConfigurer配置的时候,不要使用@EnableWebMvc注解,为什么不要使用呢?...然后为什么加了@EnableWebMvc自动配置就可以被全面接管?点一下@EnableWebMvc源码 ?

    67710

    Spring Web MVC框架(八) 配置Spring Web MVC

    启用MVC Java配置和XML命名空间 默认配置 要启用MVC Java配置(@Controller等各种注解)和XML命名空间,如果使用的是Java配置,配置类上再添加@EnableWebMvc注解即可...一组HttpMessageConverter,用于字符串和所需Java类型之间进行类型转换,具体的列表参见Spring文档 22.16.1....如果使用Java配置的话,让配置类实现WebMvcConfigurer接口,常用的办法是继承WebMvcConfigurerAdapter基类,通过重写基类的方法即可配置相关功能。...当Spring识别到@Valid注解的方法参数之后,就会执行验证,将验证结果绑定到BindingResult上,我们可以方法访问BindingResult来获取验证结果。...同样的视图文件也可以如此引用。还可以使用cache-period设置资源的过期时间,单位是秒。如果需要指定多个资源位置,可以使用逗号分隔。

    82110
    领券