Springboot @RequestBody + Retrofit @Body 之實體類欄位含有日期Date型別的提交方式
阿新 • • 發佈:2018-12-29
有時候進行引數提交時需要提交很多的引數,一個個引數寫太麻煩,則可以利用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 + "]";
}
}