SpringMVC 对象直接返回到前台



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;

public class CustomObjectMapper extends ObjectMapper{

    public CustomObjectMapper() {    
        CustomSerializerFactory factory = new CustomSerializerFactory();
        factory.addGenericMapping(Date.class, new JsonSerializer<Date>() {    
            @Override    
            public void serialize(Date value, JsonGenerator jsonGenerator,SerializerProvider provider) throws IOException, JsonProcessingException {    
                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");    
                jsonGenerator.writeString(sdf.format(value));    
            }
        });
        factory.addGenericMapping(Long.class, new JsonSerializer<Long>() {    
            @Override    
            public void serialize(Long value, JsonGenerator jsonGenerator,SerializerProvider provider) throws IOException, JsonProcessingException {    
                jsonGenerator.writeString(String.valueOf(value));
            }
        });
        this.setSerializerFactory(factory);    
    }
    public static void main(String[] args) {
        // TODO Auto-generated method stub

    }

}

做这个Spring MVC List 返回前台问题

如果是List,Long类型是能转成String的,但是如果是List Map里的Long类型,是不会转的,
这个问题很困扰,谁有比较方便的办法,
好像这个转换机制,不适合Map的

是出参没有转换对吗?加上@ResponseBody,再在Spring MVC配置文件中配置自定义的Mapper;或者用@InitBinder试试

<mvc:annotation-driven>
        <!--返回JavaBean时解析成Json-->
        <mvc:message-converters>
            <bean class="org.springframework.http.converter.StringHttpMessageConverter"/>
            <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
                <property name="objectMapper">
                    <bean class="com.longke.watercleanner.converter.LongToStringMapper"/>
                </property>
            </bean>
        </mvc:message-converters>
    </mvc:annotation-driven>