虽然SpringMVC的Controller可以自动把对象转换成JSON返回给客户端,但是我们需要制定一个 统一的标准,保证所有Controller返回的数据格式一致。最简便的办法就是定义封装类,来统一封装返回给客户端的数据。
修改 pom.xml 文件,添加依赖库。 Apache 的 httpcomponents 库里面的 HttpStatus 类封装了 很多状态码,所以我们在Web返回对象中封装状态码,可以用到这些状态码。
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.4.13</version>
</dependency>
在项目中创建用来装封装类的包,然后创建 R 类↓
package com.example.csdn.common.util;
import org.apache.http.HttpStatus;
import java.util.HashMap;
import java.util.Map;
public class R extends HashMap<String,Object> {
public R(){
put("code", HttpStatus.SC_OK);
put("msg","success");
}
public R put(String key,Object value){
super.put(key,value);
return this;
}
public static R ok(){
return new R();
}
public static R ok(String msg){
R r=new R();
r.put("msg",msg);
return r;
}
public static R ok(Map<String,Object> map){
R r=new R();
r.putAll(map);
return r;
}
public static R error(int code,String msg){
R r=new R();
r.put("code",code);
r.put("msg",msg);
return r;
}
public static R error(String msg){
return error(HttpStatus.SC_INTERNAL_SERVER_ERROR,msg);
}
public static R error(){
return error(HttpStatus.SC_INTERNAL_SERVER_ERROR,"未知异常,请联系管理员");
}
}
本篇文章我们只讲了封装web返回对象的技术概念,之后我会将这些技术应用在一个实战项目中,希望大家有需要的继续关注!!
本次分享到此结束,谢谢大家阅读!!