Springで@ResponseBodyがjson文字列dateタイプを返しlong型になる問題を解決する


詳細

package com.jynine.service;

import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;

import org.codehaus.jackson.JsonGenerator;
import org.codehaus.jackson.JsonProcessingException;
import org.codehaus.jackson.map.JsonSerializer;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.map.SerializerProvider;
import org.codehaus.jackson.map.ser.CustomSerializerFactory;
import org.springframework.stereotype.Component;
/**
 * 
 * 

Title: CustomObjectMapper.java

*

Description: SpringMVC @ResponseBody json ,

* @author jynine * @date 2014-11-14 */ @Component("customObjectMapper") public class CustomObjectMapper extends ObjectMapper{ public CustomObjectMapper() { CustomSerializerFactory factory = new CustomSerializerFactory(); factory.addGenericMapping(Date.class, new JsonSerializer() { @Override public void serialize(Date arg0, JsonGenerator arg1, SerializerProvider arg2) throws IOException, JsonProcessingException { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); arg1.writeString(sdf.format(arg0)); } }); this.setSerializerFactory(factory); } }

servlet-context.xmlで追加