ssm替換預設json轉換器為fastjson
阿新 • • 發佈:2018-12-08
<mvc:annotation-driven> <mvc:message-converters register-defaults="true"> <!-- 避免IE執行AJAX時,返回JSON出現下載檔案 --> <!-- FastJson --> <bean id="fastJsonHttpMessageConverter" class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <!-- 這裡順序不能反,一定先寫text/html,不然ie下出現下載提示 --> <value>application/json;charset=UTF-8</value> </list> </property> <property name="features"> <array value-type="com.alibaba.fastjson.serializer.SerializerFeature"> <!-- 避免迴圈引用 --> <value>DisableCircularReferenceDetect</value> <!-- 是否輸出值為null的欄位 --> <!-- <value>WriteMapNullValue</value>--> <!-- 數值欄位如果為null,輸出為0,而非null --> <!-- <value>WriteNullNumberAsZero</value>--> <!-- 字元型別欄位如果為null,輸出為"",而非null --> <value>WriteNullStringAsEmpty</value> <!-- List欄位如果為null,輸出為[],而非null --> <value>WriteNullListAsEmpty</value> <!-- Boolean欄位如果為null,輸出為false,而非null --> <!-- <value>WriteNullBooleanAsFalse</value>--> </array> </property> </bean> </mvc:message-converters> </mvc:annotation-driven>
預設配置是以上,想處理序列化以後字串為null的情況返回空字串,但是怎麼也不生效.....使用程式碼方式配置也不可以....後來發現是順序錯了...
<mvc:annotation-driven conversion-service="conversionService"/> <bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean"> <property name="converters"> <set> <ref bean="dateConvert"/> </set> </property> </bean>
因為我配了一個接收時間轉換的配置,如果把這個配置寫在上面json轉換前面的話,則json配置失效.所以這個順序導致了錯誤;
但是如果把這個放在前面json轉換器成功了,但是這個時間轉換失效了..所以要用下面的方式,寫到一起:
<mvc:annotation-driven conversion-service="conversionService"> <mvc:message-converters register-defaults="true"> <!-- 避免IE執行AJAX時,返回JSON出現下載檔案 --> <!-- FastJson --> <bean id="fastJsonHttpMessageConverter" class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <!-- 這裡順序不能反,一定先寫text/html,不然ie下出現下載提示 --> <value>application/json;charset=UTF-8</value> </list> </property> <property name="features"> <array value-type="com.alibaba.fastjson.serializer.SerializerFeature"> <value>WriteNullStringAsEmpty</value> <value>WriteNullListAsEmpty</value> <value>WriteMapNullValue</value> </array> </property> </bean> </mvc:message-converters> </mvc:annotation-driven>