上一篇叙述了GridView的用法。遗漏了spring mvc视图映射器的配置。可能会让人觉得迷惑。下面补充一下spring mvc视图映射层的配置。细心的读者应该已经发现了:页面定义的CURD的URL与控制器里定义的路径是不完全一样的,后面都多了.json。这是spring mvc映射器的解析识别功能,通过后缀的不同,spring使用json或xml或者其他的数据格式来序列化、反序列化数据报文。
多的废话不说,直接上Bean配置!
<!-- 启动Spring MVC的注解功能,完成请求和注解POJO的映射 -->
<!-- <context:annotation-config /> <mvc:annotation-driven /> -->
<bean
class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping">
</bean>
<bean
class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
<property name="messageConverters">
<list>
<bean
class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
</bean>
</list>
</property>
</bean>
<!-- rest json -->
<bean
class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
<property name="ignoreAcceptHeader" value="true" />
<property name="defaultContentType" value="text/html;charset=utf-8" />
<property name="contentNegotiationManager">
<bean class="org.springframework.web.accept.ContentNegotiationManager">
<constructor-arg>
<bean
class="org.springframework.web.accept.PathExtensionContentNegotiationStrategy">
<constructor-arg>
<map>
<entry key="json" value="application/json;charset=utf-8" />
<entry key="xml" value="application/xml;charset=utf-8" />
</map>
</constructor-arg>
</bean>
</constructor-arg>
</bean>
</property>
<property name="defaultViews">
<list>
<bean
class="org.springframework.web.servlet.view.json.MappingJacksonJsonView">
<property name="objectMapper">
<bean class="org.codehaus.jackson.map.ObjectMapper">
<!-- 设置objectMapper的serializationConfig的serializationInclusion属性,以忽略null对象
,也可在vo上注解@JsonWriteNullProperties(false) -->
<property name="serializationConfig.serializationInclusion">
<value
type="org.codehaus.jackson.map.annotate.JsonSerialize.Inclusion">NON_NULL</value>
</property>
</bean>
</property>
<property name="extractValueFromSingleKeyModel" value="true" />
</bean>
<bean class="org.springframework.web.servlet.view.xml.MarshallingView">
<property name="marshaller">
<bean class="org.springframework.oxm.xstream.XStreamMarshaller" />
</property>
</bean>
</list>
</property>
</bean>
另外日期格式的问题,需要修改jackson的jar包,定义日期的默认格式化方式。
http://download.csdn.net/detail/supperman_009/6985313
可以到我的资源链接下载这个工程,从里面拷贝jackson json的jar包,直接替换从官网下载的jar包,即可正常使用。否则在序列化和反序列化日期的问题上,会冒青烟的!
未完待续……