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

来源:互联网 发布:兰州知豆电动车租赁点 编辑:程序博客网 时间:2024/06/06 07:01

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

<?xml version="1.0" encoding="UTF-8"?><beansxmlns="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.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-3.1.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx-3.1.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop-3.1.xsdhttp://www.springframework.org/schema/mvchttp://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")@ResponseBodypublic 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类型保存日期数据了。





0 0
原创粉丝点击