一、统一返回值代码
package com.sise.wangzhan.commonutils;
import lombok.Data;
import java.util.HashMap;
import java.util.Map;
@Data
public class R {
private Boolean success;
private Integer code;
private String description;
private Map<String, Object> data = new HashMap<String, Object>();
private R(){}
public static R ok(){
R r = new R();
r.setSuccess(true);
r.setCode(ResultCode.SUCCESS);
r.setDescription("成功");
return r;
}
public static R error(){
R r = new R();
r.setSuccess(false);
r.setCode(ResultCode.ERROR);
r.setDescription("失败");
return r;
}
public R success(Boolean success){
this.setSuccess(success);
return this;
}
public R code(Integer code){
this.setCode(code);
return this;
}
public R description(String description){
this.setDescription(description);
return this;
}
public R data(String key, Object value){
this.data.put(key, value);
return this;
}
public R data(Map<String, Object> data){
this.setData(data);
return this;
}
}
二、在controller使用
类似这种的返回方式
@PostMapping(value = "/login")
public R login(@RequestBody Member member){
try {
Member loginMember = memberService.getMemberByNicknameAndPassword(member);
if (loginMember == null){
return R.error().description("登录失败!!!");
}else if (loginMember != null){
String token = JwtUtils.getJwtToken(loginMember.getId(), loginMember.getNickname());
return R.ok().data("token", token);
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
返回前台接收(我用的是vue.js)
response.data.data.token (这里的token是后端传的第一个参数的值)