Java解决LocalDateTime传输前端为时间的数组

 更新时间:2024年03月28日 10:39:12   作者:五敷有你  
本文主要介绍了Java解决LocalDateTime传输前端为时间的数组,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

问题出现如下:

问题出现原因:

默认序列化情况下会使用SerializationFeature.WRITE_DATES_AS_TIMESTAMPS。使用这个解析时就会打印出数组。

解决方法:

我在全文搜索处理方法总结如下:

1.前端自定义函数来书写

        ,cols: [[ //表头
            {type: 'checkbox', fixed: 'left'}
            ,{field: 'purchaseId', title: 'ID',  sort: true, fixed: 'left',hide:true}
            ,{field: 'supplierName', title: '供应商名称',sort: true}//当field是直属属性时,可以不用temple去获取!
            ,{field: 'userName', title: '采购员', sort: true}
            ,{field: 'purchaseDate', title: '采购时间',sort: true,templet:function(resp){
                return dateArrayTransfer(resp.purchaseDate,'yyyy-MM-dd HH:mm:ss');
                }}
            ,{fixed:'right',title:'操作',toolbar:'#operatBtn'}



function dateArrayTransfer(dateArray) {
    if(dateArray == null || dateArray == ''){
        return '';
    }
    var returnDate = dateArray[0]+"-"+
        returnDoubleNum(dateArray[1])+"-"+
        returnDoubleNum(dateArray[2])+" "+
        returnDoubleNum(dateArray[3])+":"+
        returnDoubleNum(dateArray[4])+":"+
        returnDoubleNum(dateArray[5]);
    return returnDate;
}
//保证两位数
function returnDoubleNum(number) {
    return (Array(2).join(0) + number).slice(-2);//创建一个长度为2的数组,且默认用0填充;然后用传过来的数添加都右边,然后从右向左截取两位!
}

2.后端处理:

两个方法

一、一劳永逸法:修改消息转换器

在WebMvcConfig配置类中扩展Spring Mvc的消息转换器,在此消息转换器中使用提供的对象转换器进行Java对象到json数据的转换():

写在下面这个配置类里,继承了WebMvcConfiguer

package com.aqiuo.config;

import com.aqiuo.Interceptor.LoginInterceptor;
import com.aqiuo.Interceptor.RefreshInterceptor;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.databind.module.SimpleModule;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.http.HttpOutputMessage;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.converter.HttpMessageNotWritableException;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

import java.io.IOException;
import java.lang.reflect.Type;
import java.util.List;

/**
 * 配置访问拦截器
 */
@Configuration
public class MVCConfig implements WebMvcConfigurer {

    @Autowired
    StringRedisTemplate stringRedisTemplate;


    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new LoginInterceptor(stringRedisTemplate)).addPathPatterns("/class").addPathPatterns("/course").excludePathPatterns("/user/login").excludePathPatterns("/user/register");
        registry.addInterceptor(new RefreshInterceptor(stringRedisTemplate)).addPathPatterns("/**");
    }

        @Override
        public void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
            MappingJackson2HttpMessageConverter jackson2HttpMessageConverter = new MappingJackson2HttpMessageConverter();
            ObjectMapper objectMapper = jackson2HttpMessageConverter.getObjectMapper();
            // 不显示为null的字段
            objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
            SimpleModule simpleModule = new SimpleModule();
            simpleModule.addSerializer(Long.class, ToStringSerializer.instance);
            simpleModule.addSerializer(Long.TYPE, ToStringSerializer.instance);
            objectMapper.registerModule(simpleModule);
            objectMapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
            jackson2HttpMessageConverter.setObjectMapper(objectMapper);
            // 放到第一个
            converters.add(0, jackson2HttpMessageConverter);

    }


}

二、简单,增加注解

  • 在定义LocalDateTime类型的属性上添加两行注解
    @DateTimeFormat(pattern = "yyyy-MM-dd hh:mm:ss")                    // 表示返回时间类型
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")      // 表示接收时间类型
    @ApiModelProperty(value = "注册时间")
    private LocalDateTime date;

二者都可以!!!

到此这篇关于Java解决LocalDateTime传输前端为时间的数组的文章就介绍到这了,更多相关Java LocalDateTime传输时间内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 使用Java和PostgreSQL存储向量数据的实现指南

    使用Java和PostgreSQL存储向量数据的实现指南

    在当今的数字化时代,数据存储的方式和技术正变得越来越复杂和多样化,随着机器学习和数据科学的发展,向量数据的存储和管理变得尤为重要,本文将详细介绍如何使用 Java 和 PostgreSQL 数据库来存储向量数据,需要的朋友可以参考下
    2024-09-09
  • 详解Java 本地接口 JNI 使用方法

    详解Java 本地接口 JNI 使用方法

    这篇文章主要介绍了详解Java 本地接口 JNI 使用方法的相关资料,希望通过本文大家能彻底使用JNI编程,需要的朋友可以参考下
    2017-09-09
  • JAVA实现深拷贝的几种方式代码

    JAVA实现深拷贝的几种方式代码

    这篇文章主要给大家介绍了关于JAVA实现深拷贝的几种方式,在Java中深拷贝和浅拷贝是用来复制对象的两种不同方式,深拷贝会对所有数据类型进行拷贝,包括对象所包含的内部对象,需要的朋友可以参考下
    2023-09-09
  • Java并发编程之Exchanger方法详解

    Java并发编程之Exchanger方法详解

    这篇文章主要介绍了Java并发编程之Exchanger方法详解,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-04-04
  • IDEA 集成log4j将SQL语句打印在控制台上的实现操作

    IDEA 集成log4j将SQL语句打印在控制台上的实现操作

    这篇文章主要介绍了IDEA 集成log4j将SQL语句打印在控制台上的实现操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • springboot调用支付宝第三方接口(沙箱环境)

    springboot调用支付宝第三方接口(沙箱环境)

    这篇文章主要介绍了springboot+调用支付宝第三方接口(沙箱环境),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10
  • Java中的CAS锁机制(无锁、自旋锁、乐观锁、轻量级锁)详解

    Java中的CAS锁机制(无锁、自旋锁、乐观锁、轻量级锁)详解

    这篇文章主要介绍了Java中的CAS锁机制(无锁、自旋锁、乐观锁、轻量级锁)详解,CAS算法的作用是解决多线程条件下使用锁造成性能损耗问题的算法,保证了原子性,这个原子操作是由CPU来完成的,需要的朋友可以参考下
    2024-01-01
  • Spring Boot Security认证之Redis缓存用户信息详解

    Spring Boot Security认证之Redis缓存用户信息详解

    本文介绍了如何使用Spring Boot Security进行认证,并通过Redis缓存用户信息以提高系统性能,通过配置RedisUserDetailsManager,我们成功地将用户信息存储到了Redis中,并在Spring Security中进行了集成,需要的朋友可以参考下
    2024-01-01
  • MyBatis多表连接查询的实例教程

    MyBatis多表连接查询的实例教程

    这篇文章主要给大家介绍了关于MyBatis多表连接查询的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • 使用Idea快速搭建SpringMVC项目的详细步骤记录

    使用Idea快速搭建SpringMVC项目的详细步骤记录

    这篇文章主要给大家介绍了关于使用Idea快速搭建SpringMVC项目的详细步骤,Spring MVC是一种基于MVC模式的框架,它是Spring框架的一部分,它提供了一种更简单和更有效的方式来构建Web应用程序,需要的朋友可以参考下
    2024-05-05

最新评论