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

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



	
	
		
			
				
				
					
						
							application/json;charset=UTF-8
						
					
				
			
		
	
	
	
	
	
	
	
	
	
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
{
	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
{
	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类型保存日期数据了。





你可能感兴趣的:(ssh)