对AJAX请求返回的结果进行规范

编写ResultEntity,ajax返回数据的时候都返回该实体对象,成功,失败,消息,数据,都在这个对象里
这个类最大的作用就是 封装响应数据,封装处理结果

  1. package com.yixuexi.crowd.util;
  2. import java.util.Objects;
  3. /**
  4. * @date: 2021/1/11 15:09
  5. * @author: 易学习
  6. * 统一整个项目中,AJAX请求返回的结果
  7. * 未来也可以用来分布式架构各个模块间调用时返回的数据
  8. * <T> 泛型,将来查询数据,查询到什么数据就是什么类型
  9. */
  10. public class ResultEntity<T> {
  11. /**
  12. * 为了规范处理成功后返回什么,定义两个常量
  13. */
  14. public static final String SUCCESS = "SUCCESS";
  15. public static final String FAILED = "FAILED";
  16. /**
  17. * 用来封装当前请求处理的结果是成功还是失败
  18. */
  19. private String result;
  20. /**
  21. * 请求处理失败时,返回的错误消息
  22. */
  23. private String message;
  24. /**
  25. * 返回的数据
  26. */
  27. private T data;
  28. /**
  29. * 处理成功但是不需要返回数据
  30. * @param <E>前面的<E> 是声明一个泛型方法,后面的E是使用泛型
  31. * @return
  32. */
  33. public static <E> ResultEntity<E> successWithoutData(){
  34. return new ResultEntity<E>(SUCCESS,null,null);
  35. }
  36. /**
  37. * 处理成功 并且需要返回数据
  38. * @param <E>
  39. * @return
  40. */
  41. public static <E> ResultEntity<E> successWithData(E data){
  42. return new ResultEntity<>(SUCCESS,null,data);
  43. }
  44. /**
  45. * 处理失败,需要返回一个提示消息
  46. * @param message 出错的原因
  47. * @return
  48. */
  49. public static <E> ResultEntity<E> failed(String message){
  50. return new ResultEntity<E>(FAILED,message,null);
  51. }
  52. public ResultEntity() {
  53. }
  54. public ResultEntity(String result, String message, T data) {
  55. this.result = result;
  56. this.message = message;
  57. this.data = data;
  58. }
  59. public String getResult() {
  60. return result;
  61. }
  62. public void setResult(String result) {
  63. this.result = result;
  64. }
  65. public String getMessage() {
  66. return message;
  67. }
  68. public void setMessage(String message) {
  69. this.message = message;
  70. }
  71. public T getData() {
  72. return data;
  73. }
  74. public void setData(T data) {
  75. this.data = data;
  76. }
  77. @Override
  78. public String toString() {
  79. return "ResultEntity{" +
  80. "result='" + result + '\'' +
  81. ", message='" + message + '\'' +
  82. ", data=" + data +
  83. '}';
  84. }
  85. @Override
  86. public boolean equals(Object o) {
  87. if
  88. (this == o) {return true;}
  89. if (o == null || getClass() != o.getClass()){ return false;}
  90. ResultEntity<?> that = (ResultEntity<?>) o;
  91. return Objects.equals(result, that.result) &&
  92. Objects.equals(message, that.message) &&
  93. Objects.equals(data, that.data);
  94. }
  95. @Override
  96. public int hashCode() {
  97. return Objects.hash(result, message, data);
  98. }
  99. }