Java Web 实用返回结果封装

实用的返回结果封装

  • 使用示例
  • 效果
  • Result
  • ResultEnum

使用示例

/**
 * @Author: huangwenjun
 * @Description:
 * @Date: Created in 13:59  2018/3/28
 **/
@RestController
@CrossOrigin
@RequestMapping("baofu")
public class ConfigDemoController {

    @Autowired
    private BaoFooConfig baoFooConfig;

    @GetMapping("success")
    public Result<String> success() {
        return Result.success("success !");
    }

    @GetMapping("bulid")
    public Result<String> bulid() {
        return Result.build(ResultEnum.WAIT);
    }

    @GetMapping("error")
    public Result<String> error() {
        return Result.success("error !");
    }
}

效果


{"code":"0000","msg":"成功","data":"success !"}

{"code":"1111","msg":"正在处理结果","data":null}

{"code":"9999","msg":"error !","data":null}

Result

public class Result<T> {

    /**
     * 错误码
     */
    private String code;

    /**
     * 提示信息
     */
    private String msg;

    /**
     * 具体的内容
     */
    private T data;

    /**
     * 成功时候的调用
     * @param <T>
     * @return
     */
    public static <T> Result<T> success(T data) {
        return new Result<>(data);
    }

    /**
     * 根据返回的状态对象, 构建返回结果
     * @param resultEnum
     * @param <T>
     * @return
     */
    public static <T> Result<T> build(ResultEnum resultEnum) {
        return new Result<>(resultEnum);
    }

    /**
     * 根据 code, 和  msg 构建返回结果
     * @param code
     * @param msg
     * @param <T>
     * @return
     */
    public static <T> Result<T> build(String code, String msg) {
        return new Result<T>(code, msg);
    }

    /**
     * 根据 code, 和  msg, 和 data 构建返回结果
     * @param code
     * @param msg
     * @param <T>
     * @return
     */
    public static <T> Result<T> build(String code, String msg, T data) {
        return new Result<T>(code, msg, data);
    }

    /**
     * 失败的调用
     * @param codeMsg
     * @param <T>
     * @return
     */
    public static <T> Result<T> error(String codeMsg) {
        return new Result<>(codeMsg);
    }

    /**
     * 失败的调用 将返回结果传入
     * @param data
     * @param <T>
     * @return
     */
    public static <T> Result<T> error(T data) {
        return new Result<>(ResultEnum.ERROR.getCode(), ResultEnum.ERROR.getMsg(), data);
    }

    private Result(T data) {
        this.code = ResultEnum.SUCCESS.getCode();
        this.msg = ResultEnum.SUCCESS.getMsg();
        this.data = data;
    }

    private Result(String msg) {
        this.code = ResultEnum.ERROR.getCode();
        this.data = null;
        this.msg = msg;
    }

    private Result(ResultEnum resultEnum) {
        this.code = resultEnum.getCode();
        this.msg = resultEnum.getMsg();
    }

    private Result(String code, String msg) {
        this.code = code;
        this.msg = msg;
    }

    private Result(String code, String msg, T data) {
        this.code = code;
        this.msg = msg;
        this.data = data;
    }
}

ResultEnum

public enum ResultEnum {

    SUCCESS("0000", "成功"),
    ERROR("9999", "失败"),

    WAIT("1111", "正在处理结果");

    private String code;

    private String msg;

    ResultEnum(String code, String msg) {
        this.code = code;
        this.msg = msg;
    }

    public String getCode() {
        return code;
    }

    public String getMsg() {
        return msg;
    }
}

原文地址:https://www.cnblogs.com/jpfss/p/9930086.html

时间: 2024-10-11 16:24:59

Java Web 实用返回结果封装的相关文章

JAVA WEB SQLHelper类的封装

在这次做项目中,我对自己最满意的就是封装了一下SQLHelper类,我对自己感到骄傲主要是 我是初学者,我刚开始不知道可以这样做,我只是想着试着去这样做了,结果真的可以,所以我 在我的模块就自己封装了一个SQLHelper,虽然下面用的这个不是很好,但是基本上满足需求, 因为似乎所有类都能转换为String,所以就用String数组来补充sql语句中的可变参数,但是有 一个问题,就是在调用的时候第二个参数必须为null,或者String数组,如果只有一个参数,也 要用String数组的形式传进去

Java Web实用小知识01

${ctx}与 ${pageContext.request.contextPath}这两个为一个意思,都是获取当前根目录. 不同的是${ctx}为${pageContext.request.contextPath}的简写版,经查证之后果真如此, 发现在项目的一个文件内有这样一段话的配置<c:setvar="ctx"value="${pageContext.request.contextPath}"/> 注意在使用${ctx的时候一定不要忘记把带有该配置的

Java Web实用小知识02

日期时间转换到页面显示 两种方式: 1. OutputStream out = response.getOutputStream(); map.put("enterFromTime", sdf.format(itemData.getEnterFromTime()));// 入单时间 2. map.put("changeTime", DateUtil.formatDate(itemData.getChangeTime()));// 转单时间 第2种好. 日期加一天 高

java web学习笔记-jsp篇

转载自:http://www.cnblogs.com/happyfans/archive/2015/03/17/4343571.html 1.java web简介 1.1静态页面与动态页面   表现形式 所需技术 静态网页 网页内容固定,不会更新 html,css 动态网页 网页内容由程序动态显示,自动更新 html,css,DB,java/c#/php,javascript,xml,主流的动态网页脚本(jsp,asp.net,php) 1.2搭建java web开发环境 jdk1.7+tomc

Java Web系列:Spring依赖注入基础

一.Spring简介 1.Spring简化Java开发 Spring Framework是一个应用框架,框架一般是半成品,我们在框架的基础上可以不用每个项目自己实现架构.基础设施和常用功能性组件,而是可以专注业务逻辑.因此学习Spring Framework在架构和模式方面的结构和原理,对我们在架构和模块级别的理解帮助极大.Spring Framework(参考1)的宗旨是简化Java开发,主要的手段如下: (1)在架构上解耦:通过DI(依赖注入)管理类型依赖,通过AOP分离关注点,减少重复代码

Java Web项目中连接Access数据库的配置方法

本文是对前几天的"JDBC连接Access数据库的几种方式"这篇的升级.因为在做一些小项目的时候遇到的问题,因此才决定写这篇博客的.昨天已经将博客公布了.可是后来经过一些验证有点问题,所以今天改了一下又一次的公布了 老师决定期末考试採用access数据库实现增删改查.我觉得如今的我已经没有问题了.可是曾经都是在JSP页面中连接access数据库,不管是下面的那种方式都进行了连接的练习,可是如今我想让我的项目中的訪问access数据库的java代码,封装到DAO中,在DAO中连接数据库,

JAVA web 框架集合

“框架”犹如滔滔江水连绵不绝, 知道有它就好,先掌握自己工作和主流的框架: 在研究好用和新框架. 主流框架教程分享在Java帮帮-免费资源网 其他教程需要时间制作,会陆续分享!!! 152款框架,你还知道其他的吗? 留言你用过的web框架 Java开源web框架汇总 1 Struts2 Struts2是一个web应用框架.它不是一个Struts的新的发布版本,而是一个全新的框架.Struts2 是第二代基于Model-View-Controller (MVC)模型的web应用框架. Struts

java web 数据库开发1

一个完整的数据库部署架构通常由客户端和服务器端两部分组成.客户端封装数据库请求将其发送给服务器端,服务器端执行完毕将其及结果返回给服务器端. 以mysql为例 介绍java应用程序对数据库的访问 JDBC意义:应用程序通过调用统一接口实现对任意数据库的访问,为我们屏蔽了客户端与服务器端交互协议的实现细节. 对java而言,JDBC是一个类库,对数据库而言,JDBC是接口规范. 有了JDBC,应用程序变得更加简单,提高了程序开发的效率,使java web面向不同的数据库时,具有跨平台性,基于JDB

关于java web开发需要哪些技术要求(简单的web界面管理系统)

目前, 国内外信息化建设已经进入基于Web应用为核心的阶段, Java作为应用于网络的最好语言,前景无限看好.然而,就算用Java建造一个不是很烦琐的web应用,也不是件轻松的事情.概括一下,实施Java的WEB项目需要掌握的技术如下: lJava语言 l面向对象分析设计思想 l设计模式和框架结构 lXML语言 l网页脚本语言 l数据库 l应用服务器 l集成开发环境 下面我们具体地看每个技术. 1.Java语言 Java语言体系比较庞大,包括多个模块.从WEB项目应用角度讲有JSP.Servle