AjaxResult和Result两种结果集

共同点:

都是Java返回数据结果统一封装体

区别:

Ajax更适用于后端和前端间的数据传递。

Result适用于后端间的数据传递

原因:

R模块用法:

less 复制代码
@PostMapping("/test/info")
public R<TestEntity> testinfo(@RequestBody TestEntity test) {
	if (...) {
		...
        return R.fail();
    }
    return R.ok();
}

AjaxResult用法:

java 复制代码
	@PostMapping("/test/info")
    public AjaxResult testinfo(@RequestBody TestEntity test) {

        if (...) {
            ...
            return AjaxResult.success();
        }
        return AjaxResult.error();

    }
java 复制代码
public class AjaxResult extends HashMap<String, Object>
{
	...
	...
	...
	
    @Override
    public AjaxResult put(String key, Object value)
    {
        super.put(key, value);
        return this;
    }
}

最主要的原因还是,R模块,限定了一个实体类来序列化,只能用于该实体类的数据,对于前端的复制数据传输有很大的限制。

而AjaxResult,继承了HashMap<String, Object>,其对象实例化后,可以插入复杂数据,例如 Json格式数据,对于前端的数据获取有了一个极大的灵活性选择,所以前端用 AjaxResult 后端用 R 模块,是最好的选择。

数据结构:

AjaxResult

AJAX 是一种在无需重新加载整个页面的情况下,能够更新部分网页的技术。因此,AjaxResult 往往被设计为能够方便地通过 HTTP 响应传递给前端 JavaScript 代码。

返回结果封装体

  • code:状态码,表示操作是否成功,例如 200 表示成功,500 表示服务器错误等。
  • msg:返回消息(内容),关于操作结果的描述性文本,例如"操作成功"或"参数错误"等。
  • data:数据对象,实际的操作结果数据,可能是对象、数组或其他数据结构。

Result

Result功能是封装Action层到View层的跳转逻辑。

更多的就是传递一个信息,成功与否这种

java 复制代码
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
 
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Result {
    Integer status;
    Object data;
    String msg;
 
    public static Result success(){
        return new Result(Constants.CODE_200,null,"");
    }
    public static Result success(Object data){
        return new Result(Constants.CODE_200,data,"");
    }
    public static Result error(Integer code,String msg){
        return new Result(code,null,msg);
    }
    public static Result error(){
        return new Result(Constants.CODE_500,null,"系统错误");
    }
}
相关推荐
野犬寒鸦11 分钟前
从零起步学习并发编程 || 第一章:初步认识进程与线程
java·服务器·后端·学习
我爱娃哈哈15 分钟前
SpringBoot + Flowable + 自定义节点:可视化工作流引擎,支持请假、报销、审批全场景
java·spring boot·后端
李梨同学丶2 小时前
0201好虫子周刊
后端
思想在飞肢体在追2 小时前
Springboot项目配置Nacos
java·spring boot·后端·nacos
Loo国昌5 小时前
【垂类模型数据工程】第四阶段:高性能 Embedding 实战:从双编码器架构到 InfoNCE 损失函数详解
人工智能·后端·深度学习·自然语言处理·架构·transformer·embedding
ONE_PUNCH_Ge6 小时前
Go 语言泛型
开发语言·后端·golang
良许Linux6 小时前
DSP的选型和应用
后端·stm32·单片机·程序员·嵌入式
不光头强6 小时前
spring boot项目欢迎页设置方式
java·spring boot·后端
怪兽毕设6 小时前
基于SpringBoot的选课调查系统
java·vue.js·spring boot·后端·node.js·选课调查系统
学IT的周星星6 小时前
Spring Boot Web 开发实战:第二天,从零搭个“会卖萌”的小项目
spring boot·后端·tomcat