我尝试了4个小时,有人知道如何使它有效吗?
我尝试在servlet.xml中写这些:
<mvc:annotation-driven>
<mvc:message-converters>
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="prefixJson" value="true"/>
<property name="supportedMediaTypes" value="application/json"/>
<property name="objectMapper">
<bean class="com.fasterxml.jackson.databind.ObjectMapper">
<property name="serializationInclusion" value="NON_NULL"/>
</bean>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
根本不起作用。 我读了spring的源代码,并在eclipse中调试它。 它使用的messageConverter是由RequestResponseBodyMethodProcessor构造的Object#RequestResponseBodyMethodProcessor(List&gt; messageConverters,ContentNegotiationManager contentNegotiationManager,List responseBodyAdvice)
我跟踪代码,上面的构造由RequestMappingHandlerAdapter#getDefaultReturnValueHandlers()调用,在设置自定义我的messageConverter之前调用Method。 所以上面的设置不起作用。
天啊,我怎么能让它有用?
答案 0 :(得分:0)
自Jackson 2.0以来,你可以在你的pojo中使用@JsonInclude。
@JsonInclude(Include.NON_NULL)
public class Pojo{
}