SpringMVC4.x学习系列之返回JSON数据自定义格式化日期Date

SpringMVC4.x默认的日期格式化使用Long类型,这往往不符合实际的使用情况。
方法一:全局修改
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
	<property name="objectMapper">
		<bean class="com.fasterxml.jackson.databind.ObjectMapper">
			<property name="dateFormat">
				<bean class="java.text.SimpleDateFormat">
					<constructor-arg type="java.lang.String" value="yyyy-MM-dd HH:mm:ss" />
				</bean>
			</property>
		</bean>
	</property>
</bean>
注意点,SpringMVC4.x不在使用org.springframework.http.converter.json.MappingJacksonHttpMessageConverter
Jackson包名是:org.codehaus.jackson
jackson-core-asl-1.9.13.jar,
jackson-mapper-asl-1.9.13.jar
改成使用2.x的实现,
Jackson包名是:com.fasterxml.jackson
jackson-core-2.5.4.jar,
jackson-databind-2.5.4.jar,
jackson-annotations-2.5.0.jar

方式二:局部修改
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;

/**
 * 类名:CustomDateSerialize <br/>
 * 功能:自定义返回JSON 数据格中日期格式化处理<br/>
 * 详细: <br/>
 * 作者: Tliu <br/>
 * 日期:2015-9-11 <br/>
 */
public class CustomDateSerialize extends JsonSerializer<Date>{

	@Override
	public void serialize(Date value, JsonGenerator gen, SerializerProvider serializers)
			throws IOException, JsonProcessingException {
		 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");  
	     gen.writeString(sdf.format(value));		
	}		
}

使用方式:    
@JsonSerialize(using = CustomDateSerializer.class) 
public Date getCreateDate() {  
    return createDate;  
}  

实际开发时基本都是全局修改加局部修改结合使用,SpringMVC在处理JSON时局部修改会被优先使用。


你可能感兴趣的:(springMVC,SpringMVC4.x)