在开发中,经常需要给页面返回数据,那么如何将数据传给页面呢?本文给出了一种规范:
1.自定义结果枚举信息接口
public interface BSBaseResult {
String getCode();
String getDesc();
}
2.编写枚举类实现上述接口
public enum BSBaseResultEnum implements BSBaseResult {
SUCCESS("1000", "操作成功"),
FAIL("1001", "操作失败");
private String code;
private String desc;
BSBaseResultEnum(String code,String desc){
this.code = code;
this.desc = desc;
}
public String getCode(){ return this.code; }
public String getDesc(){ return this.desc; }
@Override
public String toString() {
return "ErrorCodeEnum{" + "code='" + code + '\'' + ", desc='" + desc + '\'' + '}';
}
}
3.编写返回值实体类
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ReturnData<T> implements Serializable {
private String code;
private String desc;
private T data;
}
4.编写返回值工具类BSResultUtil
public class BSResultUtil {
/**
* 成功返回
*/
public static <T> ReturnData<T> returnSuccess(T data, BSBaseResultEnum enum){
ReturnData<T> result = new ReturnData<>();
result.setCode(enum.getCode());
result.setDesc(enum.getDesc());
result.setData(data);
return result;
}
/**
* 错误返回
*/
public static <T> ReturnData<T> returnError(BSBaseResultEnum enum){
ReturnData<T> result = new ReturnData<>();
result.setCode(enum.getCode());
result.setDesc(enum.getDesc());
return result;
}
/**
* 错误返回
*/
public static <T> ReturnData<T> returnError(String code, String desc){
ReturnData<T> result = new ReturnData<>();
result.setCode(code);
result.setDesc(desc);
return result;
}
}
5.使用
BSResultUtil.returnSuccess(data,BSBaseResultEnum.SUCCESS)