当前位置: 代码网 > it编程>编程语言>Java > Java解决LocalDateTime传输前端为时间的数组

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

2024年05月20日 Java 我要评论
问题出现如下:问题出现原因:默认序列化情况下会使用serializationfeature.write_dates_as_timestamps。使用这个解析时就会打印出数组。解决方法:我在全文搜索处理

问题出现如下:

问题出现原因:

默认序列化情况下会使用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传输时间内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com