@RequestBody接收json字符串,自动将日期字符串转换为java.util.Date

1.配置springMVC可以接收json字符串

<?xml version="1.0" encoding="UTF-8"?>
<beans
	xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:p="http://www.springframework.org/schema/p"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:aop="http://www.springframework.org/schema/aop"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:mvc="http://www.springframework.org/schema/mvc"
	xsi:schemaLocation="http://www.springframework.org/schema/beans 
	http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
	http://www.springframework.org/schema/context
	http://www.springframework.org/schema/context/spring-context-3.1.xsd
	http://www.springframework.org/schema/tx
	http://www.springframework.org/schema/tx/spring-tx-3.1.xsd
	http://www.springframework.org/schema/aop
	http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
	http://www.springframework.org/schema/mvc
	http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd">
	<!-- 解决@ResponseBody返回中文乱码,解决@RequestBody接收Json字符串自动转换为实体、List、Map格式转换器 -->
	<bean 
		class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
		<property name="messageConverters">
			<list>
				<!-- 
				<bean 
					class="org.springframework.http.converter.StringHttpMessageConverter">
					<property name="supportedMediaTypes">
						<list>
							<value>text/html;charset=UTF-8</value>
						</list>
					</property>
				</bean>
				-->
				<bean 
					class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
					<property name="supportedMediaTypes">
						<list>
							<value>application/json;charset=UTF-8</value>
						</list>
					</property>
				</bean>
			</list>
		</property>
	</bean>
	<!-- 扫描包,应用Spring的注解 -->
	<context:component-scan base-package="com.mvc.action"></context:component-scan>
	<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"
		p:viewClass="org.springframework.web.servlet.view.JstlView"
		p:prefix="/"
		p:suffix=".jsp">
	</bean>
	<!-- SpringMVC自定义拦截器,使SpringMVC开启CORS支持 -->
	<!-- 
	<mvc:interceptors>
		<mvc:interceptor>
			<mvc:mapping path="/*"/>
			<bean class="com.mvc.dao.CorsInterceptor"></bean>
		</mvc:interceptor>
	</mvc:interceptors>
	-->
	<context:annotation-config/>
	<mvc:annotation-driven/>
</beans>
2.@Controller类代码

@RequestMapping(value="/addDicAppUsers.do")
	@ResponseBody
	public boolean addDicAppUsers(@RequestBody DicAppUsersModel dicAppUsersModel)
	{
		if(dicAppUsersService.addDicAppUsers(dicAppUsersModel))
		{
			return true;
		}
		else
		{
			return false;
		}
	}
3.实体类对象代码

package com.mvc.model;

import java.util.Date;
import org.codehaus.jackson.map.annotate.JsonDeserialize;
import org.codehaus.jackson.map.annotate.JsonSerialize;
import com.mvc.imp.DateJsonDeserializer;
import com.mvc.imp.DateJsonSerializer;

/**
 * 用户视图类
 * @author suyunlong
 *
 */
@SuppressWarnings("serial")
public class DicAppUsersModel implements java.io.Serializable
{
	private long id;
	private String loginid;
	private String loginname;
	private String loginpassword;
	private String loginunitcode;
	private String workplace;
	@JsonSerialize(using=DateJsonSerializer.class)
	@JsonDeserialize(using=DateJsonDeserializer.class)
	private Date addtime;
	private long sourceid;
	@JsonSerialize(using=DateJsonSerializer.class)
	@JsonDeserialize(using=DateJsonDeserializer.class)
	private Date createdate;
	public DicAppUsersModel() {
		super();
	}
	public DicAppUsersModel(long id, String loginid, String loginname,
			String loginpassword, String loginunitcode, String workplace,
			Date addtime, long sourceid, Date createdate) {
		super();
		this.id = id;
		this.loginid = loginid;
		this.loginname = loginname;
		this.loginpassword = loginpassword;
		this.loginunitcode = loginunitcode;
		this.workplace = workplace;
		this.addtime = addtime;
		this.sourceid = sourceid;
		this.createdate = createdate;
	}
	public long getId() {
		return id;
	}
	public void setId(long id) {
		this.id = id;
	}
	public String getLoginid() {
		return loginid;
	}
	public void setLoginid(String loginid) {
		this.loginid = loginid;
	}
	public String getLoginname() {
		return loginname;
	}
	public void setLoginname(String loginname) {
		this.loginname = loginname;
	}
	public String getLoginpassword() {
		return loginpassword;
	}
	public void setLoginpassword(String loginpassword) {
		this.loginpassword = loginpassword;
	}
	public String getLoginunitcode() {
		return loginunitcode;
	}
	public void setLoginunitcode(String loginunitcode) {
		this.loginunitcode = loginunitcode;
	}
	public String getWorkplace() {
		return workplace;
	}
	public void setWorkplace(String workplace) {
		this.workplace = workplace;
	}
	public Date getAddtime() {
		return addtime;
	}
	public void setAddtime(Date addtime) {
		this.addtime = addtime;
	}
	public long getSourceid() {
		return sourceid;
	}
	public void setSourceid(long sourceid) {
		this.sourceid = sourceid;
	}
	public Date getCreatedate() {
		return createdate;
	}
	public void setCreatedate(Date createdate) {
		this.createdate = createdate;
	}
}
4.DateJsonSerializer类代码

package com.mvc.imp;

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.SerializerProvider;

public class DateJsonSerializer extends JsonSerializer<Date>
{
	public static final SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
	public void serialize(Date date,JsonGenerator jsonGenerator,SerializerProvider serializerProvider)
			throws IOException,JsonProcessingException 
	{
		jsonGenerator.writeString(format.format(date));  
    }  
}
5.DateJsonDeserializer类代码

package com.mvc.imp;

import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.codehaus.jackson.JsonParser;
import org.codehaus.jackson.JsonProcessingException;
import org.codehaus.jackson.map.DeserializationContext;
import org.codehaus.jackson.map.JsonDeserializer;

public class DateJsonDeserializer extends JsonDeserializer<Date>
{
	public static final SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
	public Date deserialize(JsonParser jsonParser,DeserializationContext deserializationContext)
			throws IOException,JsonProcessingException
	{
		try
		{
			return format.parse(jsonParser.getText());
		}
		catch(Exception e)
		{
			System.out.println(e.getMessage());
			throw new RuntimeException(e);
		} 
	}
}
这样,就可以把接收到的json日期字符串转换为Date了。后面,就可以直接通过Date类型保存日期数据了。





评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值