Springboot @RequestBody + Retrofit @Body 之实体类字段含有日期Date类型的提交方式
来源:互联网 发布:深信服广域网优化 编辑:程序博客网 时间:2024/09/21 08:16
有时候进行参数提交时需要提交很多的参数,一个个参数写太麻烦,则可以利用POST即两者的注解直接实体类进行提交,他们会自动进行字段的映射,相当于json数据格式提交,可以省很多事,但是需要注意字段为日期Date类型时的处理。
演示代码:
springboot controller类:
@RequestMapping("addNewConference/") public BaseResult<Conference> addNewConference(@RequestBody Conference conference) { System.out.println(conference); // 如果id不存在,则添加 if (conference.getConferenceId() == null) { conference.setReleaseTime(new Date()); conference.setStatus(Conference.STATUS_SOON); if (conferenceService.insert(conference)) { ConferencePushUtils.PushConference(conference);//推送会议 return ResultUtils.getSuccBaseResult(conference); } else { return ResultUtils.getErrorBaseResult(3, "会议发布失败"); } } // 否则更新 conferenceService.updateById(conference); return ResultUtils.getSuccBaseResult(conference); }
Retrofit接口:
//发布会议 @POST("/conference/addNewConference/") Call<BaseResult> sendNewMeeting(@Body Conference conference);
Retrofit 实例化:
Gson gson=new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm:ss").create(); Retrofit retrofit = new Retrofit.Builder().client(client).baseUrl(Api.BASE_URL) .addConverterFactory(GsonConverterFactory.create(gson)).build();
Conference 实体类 —–关键在于给date日期加上格式化format
package com.glut.meetingsign.model;import com.baomidou.mybatisplus.enums.IdType;import com.fasterxml.jackson.annotation.JsonFormat;import java.util.Date;import com.baomidou.mybatisplus.annotations.TableId;import com.baomidou.mybatisplus.activerecord.Model;import com.baomidou.mybatisplus.annotations.TableName;import java.io.Serializable;/** * <p> * * </p> * * @author FlyMegoc * @since 2017-05-03 */@TableName("me_conference")public class Conference extends Model<Conference> { public final static int STATUS_SOON=1;//即将开始 public final static int STATUS_CANCLE=2;//已取消 public final static int STATUS_END=3;//已结束 private static final long serialVersionUID = 1L; /** * 会议id */ @TableId(value="conferenceId", type= IdType.AUTO) private Integer conferenceId; /** * 会议主题 */ private String title; /** * 会议内容 */ private String content; /** * 会议时间 */ @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss") private Date conferenceTime; /** * 会议状态:即将开始、已经取消、已经结束 */ private Integer status; /** * 会议地点 */ private String address; /** * 发布时间 */ @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss") private Date releaseTime; /** * 发布人id */ private Integer userId; public Integer getConferenceId() { return conferenceId; } public void setConferenceId(Integer conferenceId) { this.conferenceId = conferenceId; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getContent() { return content; } public void setContent(String content) { this.content = content; } public Date getConferenceTime() { return conferenceTime; } public void setConferenceTime(Date conferenceTime) { this.conferenceTime = conferenceTime; } public Integer getStatus() { return status; } public void setStatus(Integer status) { this.status = status; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public Date getReleaseTime() { return releaseTime; } public void setReleaseTime(Date releaseTime) { this.releaseTime = releaseTime; } public Integer getUserId() { return userId; } public void setUserId(Integer userId) { this.userId = userId; } public static final String CONFERENCEID = "conferenceId"; public static final String TITLE = "title"; public static final String CONTENT = "content"; public static final String CONFERENCETIME = "conferenceTime"; public static final String STATUS = "status"; public static final String ADDRESS = "address"; public static final String RELEASETIME = "releaseTime"; public static final String USERID = "userId"; @Override protected Serializable pkVal() { return this.conferenceId; } @Override public String toString() { return "Conference [conferenceId=" + conferenceId + ", title=" + title + ", content=" + content + ", conferenceTime=" + conferenceTime + ", status=" + status + ", address=" + address + ", releaseTime=" + releaseTime + ", userId=" + userId + "]"; }}
关键点:对实体类的Date日期类型字段进行格式化操作,且保证两者的格式化格式一致
0 0
- Springboot @RequestBody + Retrofit @Body 之实体类字段含有日期Date类型的提交方式
- SpringMVC ResponseBody的实体类中含有Date类型转换-简单方式
- springmvc使用实体类接收表单提交数据中含有String类型对应Date类型的不匹配报错400时如何处理
- freemarker页面String类型的日期格式,实体类Date类型的----------处理方法
- hibernate实体类(主键生成、date日期、枚举类型)
- SpringMvc 传Date类型实体对象至后台的方式
- SpringMVC @RequestBody Date类型的Json转换
- asp 之 让实体中字段类型为DateTime的字段只显示日期不显示时间
- Mysql中date类型字段 日期的比较
- 将Date日期类型的字段转换成json字符串
- 关于数据库字段为DATE类型的日期处理
- 关于实体为Date类型的字段,如何用model.find(" date>? ",param)方法进行查询?
- spring mvc开发接收日期字段表单提交,自动转换成Date类型报错,解决办法
- spring mvc开发接收日期字段表单提交,自动转换成Date类型为什么报错?
- Spring--实体类Date字段多种格式的校验
- Java实体Date类型属性值无法保存到数据表对应字段的问题
- play Framework如何通过实体.find查询Date类型字段
- Date类型的实体类属性中,Date必须是Java.util.Date,而不能是Java.sql.Date
- Java编程思想-13字符串
- 5-3 树的遍历 (25分)
- SSM搭建总结
- 微信小程序循环赋值坑
- 使用脚本拷贝官方的 Material Design 图标到自己的 Android App 项目
- Springboot @RequestBody + Retrofit @Body 之实体类字段含有日期Date类型的提交方式
- Hibernate_映射_关联关系_一对一映射3_基于主键的方式
- 【LeetCode】2.Add Two Numbers两个单链表相加
- gcc LD_LIBRARY_PATH和LIBRARY_PATH区别
- 复数类
- 152.n1-使用ViewPager实现引导页
- Learn Emacs in 21 Days: day 5 学习笔记
- linux 之 用户管理(新增用户与删除)
- 输出/输入重导向