• Ajax的Result工具类


    ResultUtil.java
    package cn.qlq.util;
    
    import java.io.Serializable;
    
    public class ResultUtil<T> implements Serializable {
    
        private static final long serialVersionUID = 3637122497350396679L;
    
        private boolean success;
        private T data;
        private String msg;
    
        public ResultUtil() {
        }
    
        public ResultUtil(boolean success) {
            this.success = success;
        }
    
        public boolean isSuccess() {
            return success;
        }
    
        public void setSuccess(boolean success) {
            this.success = success;
        }
    
        public T getData() {
            return data;
        }
    
        public void setData(T data) {
            this.data = data;
        }
    
        public String getMsg() {
            return msg;
        }
    
        public void setMsg(String msg) {
            this.msg = msg;
        }
    
        public ResultUtil(boolean success, String msg) {
            super();
            this.success = success;
            this.msg = msg;
        }
    
        public ResultUtil(boolean success, T data) {
            super();
            this.success = success;
            this.data = data;
        }
    
    }

    该类为前后台交互提供了非常大的便捷:

    下面是前后台的ajax交互:

    前台ajax代码:

    $.ajax({
                url: "<%=request.getContextPath()%>/supp/deleteSupp",
                data : {supplierId:supplierId},
                async: false, //请求是否异步,默认为异步,这也是ajax重要特性
                type: "GET",   //请求方式
                success: function(data) {
                    var rs = eval('('+data+')');
                    flag = rs.success;
                    if(flag){
                        alert("删除成功!");
                    }
                }
            });

    下面是后台java代码:

    @RequestMapping("/deleteSupp")
        @ResponseBody
        public Result<String> deleteSupplier(HttpServletRequest request){
            Result<String> rs = new Result<>();
            String supplierId = request.getParameter("supplierId");
            supplierService.deleteSupplierById(supplierId);
            rs.setSuccess(true);
            return rs;
        }

    补充:第二个更好用一点的封装类

    package cn.qs.utils;
    
    import java.io.Serializable;
    
    public class JSONResultUtil<T> implements Serializable {
    
        private static final long serialVersionUID = 3637122497350396679L;
    
        private boolean success;
    
        private T data;
    
        private String msg;
    
        public boolean isSuccess() {
            return success;
        }
    
        public void setSuccess(boolean success) {
            this.success = success;
        }
    
        public T getData() {
            return data;
        }
    
        public void setData(T data) {
            this.data = data;
        }
    
        public String getMsg() {
            return msg;
        }
    
        public void setMsg(String msg) {
            this.msg = msg;
        }
    
        public JSONResultUtil(boolean success) {
            this(success, "");
        }
    
        public JSONResultUtil(boolean success, String msg) {
            this(success, msg, null);
        }
    
        public JSONResultUtil(boolean success, String msg, T data) {
            this.success = success;
            this.msg = msg;
            this.data = data;
        }
    
        /**
         * 返回正确结果不带数据
         * 
         * @return
         */
        public static JSONResultUtil<Object> ok() {
            return new JSONResultUtil<Object>(true);
        }
    
        /**
         * 返回错误的结果带错误信息
         * 
         * @param msg
         * @return
         */
        public static JSONResultUtil<Object> error(String msg) {
            return new JSONResultUtil<Object>(false, msg);
        }
    }

    关于分页的json结果返回建议用PageHelper插件封装好的:

    /** <a href="http://www.cpupk.com/decompiler">Eclipse Class Decompiler</a> plugin, Copyright (c) 2017 Chen Chao. */
    package com.github.pagehelper;
    
    import java.io.Serializable;
    import java.util.Collection;
    import java.util.List;
    
    /**
     * 对Page<E>结果进行包装
     * <p/>
     * 新增分页的多项属性,主要参考:http://bbs.csdn.net/topics/360010907
     *
     * @author liuzh/abel533/isea533
     * @version 3.3.0
     * @since 3.2.2
     * 项目地址 : http://git.oschina.net/free/Mybatis_PageHelper
     */
    @SuppressWarnings({"rawtypes", "unchecked"})
    public class PageInfo<T> implements Serializable {
        private static final long serialVersionUID = 1L;
        //当前页
        private int pageNum;
        //每页的数量
        private int pageSize;
        //当前页的数量
        private int size;
    
        //由于startRow和endRow不常用,这里说个具体的用法
        //可以在页面中"显示startRow到endRow 共size条数据"
    
        //当前页面第一个元素在数据库中的行号
        private int startRow;
        //当前页面最后一个元素在数据库中的行号
        private int endRow;
        //总记录数
        private long total;
        //总页数
        private int pages;
        //结果集
        private List<T> list;
    
        //前一页
        private int prePage;
        //下一页
        private int nextPage;
    
        //是否为第一页
        private boolean isFirstPage = false;
        //是否为最后一页
        private boolean isLastPage = false;
        //是否有前一页
        private boolean hasPreviousPage = false;
        //是否有下一页
        private boolean hasNextPage = false;
        //导航页码数
        private int navigatePages;
        //所有导航页号
        private int[] navigatepageNums;
        //导航条上的第一页
        private int navigateFirstPage;
        //导航条上的最后一页
        private int navigateLastPage;
    
        public PageInfo() {
        }
    
        /**
         * 包装Page对象
         *
         * @param list
         */
        public PageInfo(List<T> list) {
            this(list, 8);
        }
    
        /**
         * 包装Page对象
         *
         * @param list          page结果
         * @param navigatePages 页码数量
         */
        public PageInfo(List<T> list, int navigatePages) {
            if (list instanceof Page) {
                Page page = (Page) list;
                this.pageNum = page.getPageNum();
                this.pageSize = page.getPageSize();
    
                this.pages = page.getPages();
                this.list = page;
                this.size = page.size();
                this.total = page.getTotal();
                //由于结果是>startRow的,所以实际的需要+1
                if (this.size == 0) {
                    this.startRow = 0;
                    this.endRow = 0;
                } else {
                    this.startRow = page.getStartRow() + 1;
                    //计算实际的endRow(最后一页的时候特殊)
                    this.endRow = this.startRow - 1 + this.size;
                }
            } else if (list instanceof Collection) {
                this.pageNum = 1;
                this.pageSize = list.size();
    
                this.pages = this.pageSize > 0 ? 1 : 0;
                this.list = list;
                this.size = list.size();
                this.total = list.size();
                this.startRow = 0;
                this.endRow = list.size() > 0 ? list.size() - 1 : 0;
            }
            if (list instanceof Collection) {
                this.navigatePages = navigatePages;
                //计算导航页
                calcNavigatepageNums();
                //计算前后页,第一页,最后一页
                calcPage();
                //判断页面边界
                judgePageBoudary();
            }
        }
    
        /**
         * 计算导航页
         */
        private void calcNavigatepageNums() {
            //当总页数小于或等于导航页码数时
            if (pages <= navigatePages) {
                navigatepageNums = new int[pages];
                for (int i = 0; i < pages; i++) {
                    navigatepageNums[i] = i + 1;
                }
            } else { //当总页数大于导航页码数时
                navigatepageNums = new int[navigatePages];
                int startNum = pageNum - navigatePages / 2;
                int endNum = pageNum + navigatePages / 2;
    
                if (startNum < 1) {
                    startNum = 1;
                    //(最前navigatePages页
                    for (int i = 0; i < navigatePages; i++) {
                        navigatepageNums[i] = startNum++;
                    }
                } else if (endNum > pages) {
                    endNum = pages;
                    //最后navigatePages页
                    for (int i = navigatePages - 1; i >= 0; i--) {
                        navigatepageNums[i] = endNum--;
                    }
                } else {
                    //所有中间页
                    for (int i = 0; i < navigatePages; i++) {
                        navigatepageNums[i] = startNum++;
                    }
                }
            }
        }
    
        /**
         * 计算前后页,第一页,最后一页
         */
        private void calcPage() {
            if (navigatepageNums != null && navigatepageNums.length > 0) {
                navigateFirstPage = navigatepageNums[0];
                navigateLastPage = navigatepageNums[navigatepageNums.length - 1];
                if (pageNum > 1) {
                    prePage = pageNum - 1;
                }
                if (pageNum < pages) {
                    nextPage = pageNum + 1;
                }
            }
        }
    
        /**
         * 判定页面边界
         */
        private void judgePageBoudary() {
            isFirstPage = pageNum == 1;
            isLastPage = pageNum == pages || pages == 0;;
            hasPreviousPage = pageNum > 1;
            hasNextPage = pageNum < pages;
        }
    
        public int getPageNum() {
            return pageNum;
        }
    
        public void setPageNum(int pageNum) {
            this.pageNum = pageNum;
        }
    
        public int getPageSize() {
            return pageSize;
        }
    
        public void setPageSize(int pageSize) {
            this.pageSize = pageSize;
        }
    
        public int getSize() {
            return size;
        }
    
        public void setSize(int size) {
            this.size = size;
        }
    
        public int getStartRow() {
            return startRow;
        }
    
        public void setStartRow(int startRow) {
            this.startRow = startRow;
        }
    
        public int getEndRow() {
            return endRow;
        }
    
        public void setEndRow(int endRow) {
            this.endRow = endRow;
        }
    
        public long getTotal() {
            return total;
        }
    
        public void setTotal(long total) {
            this.total = total;
        }
    
        public int getPages() {
            return pages;
        }
    
        public void setPages(int pages) {
            this.pages = pages;
        }
    
        public List<T> getList() {
            return list;
        }
    
        public void setList(List<T> list) {
            this.list = list;
        }
    
        @Deprecated
        // firstPage就是1, 此函数获取的是导航条上的第一页, 容易产生歧义
        public int getFirstPage() {
            return navigateFirstPage;
        }
    
        @Deprecated
        public void setFirstPage(int firstPage) {
            this.navigateFirstPage = firstPage;
        }
    
        public int getPrePage() {
            return prePage;
        }
    
        public void setPrePage(int prePage) {
            this.prePage = prePage;
        }
    
        public int getNextPage() {
            return nextPage;
        }
    
        public void setNextPage(int nextPage) {
            this.nextPage = nextPage;
        }
    
        @Deprecated
        // 请用getPages()来获取最后一页, 此函数获取的是导航条上的最后一页, 容易产生歧义.
        public int getLastPage() {
            return navigateLastPage;
        }
    
        @Deprecated
        public void setLastPage(int lastPage) {
            this.navigateLastPage = lastPage;
        }
    
        public boolean isIsFirstPage() {
            return isFirstPage;
        }
    
        public void setIsFirstPage(boolean isFirstPage) {
            this.isFirstPage = isFirstPage;
        }
    
        public boolean isIsLastPage() {
            return isLastPage;
        }
    
        public void setIsLastPage(boolean isLastPage) {
            this.isLastPage = isLastPage;
        }
    
        public boolean isHasPreviousPage() {
            return hasPreviousPage;
        }
    
        public void setHasPreviousPage(boolean hasPreviousPage) {
            this.hasPreviousPage = hasPreviousPage;
        }
    
        public boolean isHasNextPage() {
            return hasNextPage;
        }
    
        public void setHasNextPage(boolean hasNextPage) {
            this.hasNextPage = hasNextPage;
        }
    
        public int getNavigatePages() {
            return navigatePages;
        }
    
        public void setNavigatePages(int navigatePages) {
            this.navigatePages = navigatePages;
        }
    
        public int[] getNavigatepageNums() {
            return navigatepageNums;
        }
    
        public void setNavigatepageNums(int[] navigatepageNums) {
            this.navigatepageNums = navigatepageNums;
        }
    
        public int getNavigateFirstPage() {
            return navigateFirstPage;
        }
    
        public int getNavigateLastPage() {
            return navigateLastPage;
        }
    
        public void setNavigateFirstPage(int navigateFirstPage) {
            this.navigateFirstPage = navigateFirstPage;
        }
    
        public void setNavigateLastPage(int navigateLastPage) {
            this.navigateLastPage = navigateLastPage;
        }
    
        @Override
        public String toString() {
            final StringBuffer sb = new StringBuffer("PageInfo{");
            sb.append("pageNum=").append(pageNum);
            sb.append(", pageSize=").append(pageSize);
            sb.append(", size=").append(size);
            sb.append(", startRow=").append(startRow);
            sb.append(", endRow=").append(endRow);
            sb.append(", total=").append(total);
            sb.append(", pages=").append(pages);
            sb.append(", list=").append(list);
            sb.append(", prePage=").append(prePage);
            sb.append(", nextPage=").append(nextPage);
            sb.append(", isFirstPage=").append(isFirstPage);
            sb.append(", isLastPage=").append(isLastPage);
            sb.append(", hasPreviousPage=").append(hasPreviousPage);
            sb.append(", hasNextPage=").append(hasNextPage);
            sb.append(", navigatePages=").append(navigatePages);
            sb.append(", navigateFirstPage=").append(navigateFirstPage);
            sb.append(", navigateLastPage=").append(navigateLastPage);
            sb.append(", navigatepageNums=");
            if (navigatepageNums == null) sb.append("null");
            else {
                sb.append('[');
                for (int i = 0; i < navigatepageNums.length; ++i)
                    sb.append(i == 0 ? "" : ", ").append(navigatepageNums[i]);
                sb.append(']');
            }
            sb.append('}');
            return sb.toString();
        }
    }
  • 相关阅读:
    Failed to load module "canberra-gtk-module"
    [Ubuntu18]桌面美化-仿MAC主题
    [Ubuntu]18自定义切换输入法的快捷键
    2016-2017-1 《信息安全系统设计基础》 学生博客及Git@OSC 链接
    2015-2016-2 《Java程序设计》 游戏化
    2015-2016-2 《Java程序设计》项目小组博客
    博客引用书单
    2015-2016-2 《网络攻防实践》 学生博客
    2015-2016-2 《网络攻击与防范》 学生博客
    《网络攻防技术与实践》学习指导
  • 原文地址:https://www.cnblogs.com/qlqwjy/p/8587275.html
Copyright © 2020-2023  润新知