Browse Source

尝试进行返回值处理

feature/teamB_zz_wgh
YUJT 3 years ago
parent
commit
25e9ef1dc5
  1. 49
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/security/config/WebMvcConfig.java

49
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/security/config/WebMvcConfig.java

@ -1,8 +1,8 @@
/**
* Copyright (c) 2018 人人开源 All rights reserved.
*
* <p>
* https://www.renren.io
*
* <p>
* 版权所有侵权必究
*/
@ -11,10 +11,14 @@ package com.epmet.commons.tools.security.config;
import com.epmet.commons.tools.security.resolver.LoginUserHandlerMethodArgumentResolver;
import com.epmet.commons.tools.security.resolver.UserDetailHandlerMethodArgumentResolver;
import com.epmet.commons.tools.utils.DateUtils;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.module.SimpleModule;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@ -27,9 +31,10 @@ import org.springframework.http.converter.support.AllEncompassingFormHttpMessage
import org.springframework.web.method.support.HandlerMethodArgumentResolver;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import java.io.IOException;
import java.lang.reflect.Field;
import java.text.SimpleDateFormat;
import java.util.List;
import java.util.TimeZone;
import java.util.*;
/**
* MVC配置
@ -43,6 +48,7 @@ public class WebMvcConfig implements WebMvcConfigurer {
private UserDetailHandlerMethodArgumentResolver userDetailHandlerMethodArgumentResolver;
@Autowired
private LoginUserHandlerMethodArgumentResolver loginUserHandlerMethodArgumentResolver;
@Override
public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
argumentResolvers.add(loginUserHandlerMethodArgumentResolver);
@ -75,6 +81,41 @@ public class WebMvcConfig implements WebMvcConfigurer {
simpleModule.addSerializer(Long.TYPE, ToStringSerializer.instance);
mapper.registerModule(simpleModule);
mapper.getSerializerProvider().setNullValueSerializer(new JsonSerializer<Object>() {
@Override
public void serialize(Object value, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
String fieldName = jsonGenerator.getOutputContext().getCurrentName();
Field field = null;
try {
//反射获取字段类型
field = jsonGenerator.getCurrentValue().getClass().getDeclaredField(fieldName);
} catch (NoSuchFieldException e) {
e.printStackTrace();
}
if (null != field) {
if (Objects.equals(field.getType(), String.class)) {
// 字符串型空值""
jsonGenerator.writeString(StringUtils.EMPTY);
return;
} else if (Objects.equals(field.getType(), List.class)) {
// 列表型空值返回[]
jsonGenerator.writeStartArray();
jsonGenerator.writeEndArray();
return;
} else if (Objects.equals(field.getType(), Map.class)) {
// map型空值返回{}
jsonGenerator.writeStartObject();
jsonGenerator.writeEndObject();
return;
}
}
// 默认返回""
jsonGenerator.writeString(StringUtils.EMPTY);
}
});
converter.setObjectMapper(mapper);
return converter;
}

Loading…
Cancel
Save