当前位置: 首页 > 工具软件 > EasyCode > 使用案例 >

easycode配置问题

侯博易
2023-12-01

easycode生成文件问题

弄了一下代码生成器,遇到了一些小问题,记录分享一下。

1.生成get set方法
自动生成get set的时候由于刚刚开始弄,导致了直接把引入宏定义那句代码删除了,导致一直出问题

//就是这句代码。。。。。。为年少无知付出了代价
##引入宏定义
$!define

2.生成代码保存路径、类名、保存文件类型

引入宏定义

##引入宏定义
$!define

##使用宏定义设置保存位置与文件后缀   可以加表达式动态生成包
#save("/java/cn/potato/aisell/domain/$!{tableInfo.obj.name}(生成文件保存位置)", ".java(生成文件后缀)")

##使用宏定义设置包后缀
#setPackageSuffix("domain(当前包的后缀:package com.companyname.modulename.domain;)")

直接引入

##类名的前、后缀
#set($tableName = $tool.append("I(类名前缀,可以直接拼接)",$tableInfo.name("当前表名"), "Service(类名后要加的值)"))
##设置回调(也就是设置文件存储路径和文件存储后缀)
##设置文件存储名 保存该类的名字.java文件
$!callback.setFileName( ${tool.append($tableName, ".java")})
##文件储存路径 可以加表达式
$!callback.setSavePath($tool.append($tableInfo.savePath, "/webapp/WEB-INF/views/$!{tableInfo.obj.name}"))

自己写的几个生成器模板

1.domain

##引入宏定义
$!define

##使用宏定义设置回调(保存位置与文件后缀)
#save("/java/cn/potato/aisell/domain", ".java")

##使用宏定义设置包后缀
#setPackageSuffix("domain")

import javax.persistence.Entity;
import javax.persistence.Table;

##使用宏定义实现类注释信息
#tableComment("实体类")
@Entity
@Table(name = "$!{tableInfo.obj.name}")
public class $!{tableInfo.name} extends BaseDomain{
#foreach($column in $tableInfo.otherColumn)
    #if(${column.comment})/**
    * ${column.comment}
    */#end

    private $!{tool.getClsNameByFullName($column.type)} $!{column.name};
#end

#foreach($column in $tableInfo.otherColumn)
##使用宏定义实现get,set方法
    #getSetMethod($column)
#end
}

2.repository



##类名的Repository
#set($tableName = $tool.append($tableInfo.name, "Repository"))
##设置回调
$!callback.setFileName($tool.append($tableName, ".java"))
$!callback.setSavePath($tool.append($tableInfo.savePath, "/java/cn/potato/aisell/repository"))

##拿到主键
#if(!$tableInfo.pkColumn.isEmpty())
    #set($pk = $tableInfo.pkColumn.get(0))
#end

#if($tableInfo.savePackageName)package $!{tableInfo.savePackageName}.#{end}repository;

import $!{tableInfo.savePackageName}.domain.$!{tableInfo.name};


/**
 * $!{tableInfo.comment}($!{tableInfo.name})表数据库访问层
 *
 * @author $!author
 * @since $!time.currTime()
 */
public interface $!{tableName} extends BaseRepository<$!{tableInfo.name},Long>{

}

3.service


##类名的Repository
#set($tableName = $tool.append("I",$tableInfo.name, "Service"))
##设置回调  
##设置文件储存名字($tool.append($tableName, ".java"))
$!callback.setFileName(${tool.append($tableName, ".java")})
##设置文件储存路径,默认使用选中路径
$!callback.setSavePath($tool.append($tableInfo.savePath, "/java/cn/potato/aisell/service"))

##拿到主键
#if(!$tableInfo.pkColumn.isEmpty())
    #set($pk = $tableInfo.pkColumn.get(0))
#end

#if($tableInfo.savePackageName)package $!{tableInfo.savePackageName}.#{end}service;

import $!{tableInfo.savePackageName}.domain.$!{tableInfo.name};


/**
 * $!{tableInfo.comment}($!{tableInfo.name})表数据库访问层
 *
 * @author $!author
 * @since $!time.currTime()
 */
public interface $!{tableName} extends IBaseService<$!{tableInfo.name},Long>{

}

4.serviceImpl

##定义初始变量
#set($tableName = $tool.append($tableInfo.name, "ServiceImpl"))
##设置回调
$!callback.setFileName($tool.append($tableName, ".java"))
$!callback.setSavePath($tool.append($tableInfo.savePath, "/java/cn/potato/aisell/service/impl"))

##拿到主键
#if(!$tableInfo.pkColumn.isEmpty())
    #set($pk = $tableInfo.pkColumn.get(0))
#end

#if($tableInfo.savePackageName)package $!{tableInfo.savePackageName}.#{end}service.impl;

import $!{tableInfo.savePackageName}.domain.$!{tableInfo.name};
import $!{tableInfo.savePackageName}.service.I$!{tableInfo.name}Service;
import org.springframework.stereotype.Service;


/**
 * $!{tableInfo.comment}($!{tableInfo.name})表服务实现类
 *
 * @author $!author
 * @since $!time.currTime()
 */
@Service
public class $!{tableName} extends BaseServiceImpl<$!{tableInfo.name},Long> implements I$!{tableInfo.name}Service {
 
}

5.controller

##设置回调  
##设置文件储存名字($tool.append($tableName, ".java"))
$!callback.setFileName(${tool.append($!{tableInfo.name}, "Controller.java")})
##设置文件储存路径,默认使用选中路径
$!callback.setSavePath($tool.append($tableInfo.savePath, "/java/cn/potato/aisell/web/controller"))
##类名的Repository
#set($tableName = $tool.append($tableInfo.name, "Controller"))
##设置包名
#if($tableInfo.savePackageName)package $!{tableInfo.savePackageName}.#{end}web.controller;

##使用全局变量实现默认包导入
$!autoImport

import $!{tableInfo.savePackageName}.common.JsonResult;
import $!{tableInfo.savePackageName}.common.UIpage;
import $!{tableInfo.savePackageName}.domain.$!{tableInfo.name};
import $!{tableInfo.savePackageName}.query.$!{tableInfo.name}Query;
import $!{tableInfo.savePackageName}.service.I$!{tableInfo.name}Service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.List;

@RequestMapping("/$!{tableInfo.obj.name}")
@Controller
public class $!{tableInfo.name}Controller extends BaseController {

    @Autowired
    private I$!{tableInfo.name}Service $!{tableInfo.obj.name}Service;
    /**
     * 在所有方法执行前执行
     */
    @ModelAttribute(value = "edit$!{tableInfo.name}")
    public $!{tableInfo.name}  beforeAll(Long id,String _cmd){
        if (id!=null && "update".equals(_cmd)) {
            //通过id拿到药修改的对象
            $!{tableInfo.name} $!{tableInfo.obj.name} = $!{tableInfo.obj.name}Service.findOne(id);
            return $!{tableInfo.obj.name};
        }
        return null;
    }
    /**
     * 页面展示
     */

    @RequestMapping("/index")
    public String index(){
        return "$!{tableInfo.obj.name}/index";
    }
    /**
     * 查询所有数据
     */
    @RequestMapping("/list")
    @ResponseBody
    public List<$!{tableInfo.name}> findAll(){
        return $!{tableInfo.obj.name}Service.findAll();
    }
    /**
     * 写一个类专门写分页的方法 直接用
     */
    @RequestMapping("/page")
    @ResponseBody
    public UIpage<$!{tableInfo.name}> page($!{tableInfo.name}Query query){
        //queryPage(query) 根据条件查询
        return new UIpage<>($!{tableInfo.obj.name}Service.queryPage(query));
    }
    /**
     * 删除数据
     */
    @RequestMapping("/delete")
    @ResponseBody
    public JsonResult delete(Long id){
        try {
            //ctrl+alt+t
            $!{tableInfo.obj.name}Service.delete(id);
            return new JsonResult();
        } catch (Exception e) {
            e.printStackTrace();
            return new JsonResult(e.getMessage(), false);
        }
    }
    /**
     * 添加数据
     */
    @RequestMapping("/save")
    @ResponseBody
    public JsonResult save($!{tableInfo.name} $!{tableInfo.obj.name}){
        return saveOrUpdate($!{tableInfo.obj.name});
    }
    /**
     * 修改数据
     */
    @RequestMapping("/update")
    @ResponseBody
    public JsonResult update(@ModelAttribute(value = "edit$!{tableInfo.name}")$!{tableInfo.name} $!{tableInfo.obj.name}){
        return saveOrUpdate($!{tableInfo.obj.name});
    }
    private JsonResult saveOrUpdate($!{tableInfo.name} $!{tableInfo.obj.name}){
        try {
            $!{tableInfo.obj.name}Service.save($!{tableInfo.obj.name});
            return new JsonResult();
        } catch (Exception e) {
            e.printStackTrace();
            return new JsonResult(e.getMessage(), false);
        }
    }
}

6.query

##引入宏定义
$!define

##使用宏定义设置回调(保存位置与文件后缀)
#save("/java/cn/potato/aisell/query", "Query.java")
##使用宏定义设置包后缀
#setPackageSuffix("query")


##使用全局变量实现默认包导入
$!autoImport
import $!{tableInfo.savePackageName}.domain.$!{tableInfo.name};
import com.github.wenhao.jpa.Specifications;
import org.apache.commons.lang3.StringUtils;
import org.springframework.data.jpa.domain.Specification;

public class $!{tableInfo.name}Query extends BaseQuery {

#foreach($column in $tableInfo.otherColumn )
    #if(${column.comment})/**
    * ${column.comment}
    */#end
    private $!{tool.getClsNameByFullName($column.type)} $!{column.name};
#end

@Override
    public Specification creatSpec() {
        Specification<$!{tableInfo.name}> spec = Specifications.<$!{tableInfo.name}>and()
                .like(StringUtils.isNotBlank(name),"name","%"+name+"%")
                .build();
        return spec;
    }

#foreach($column in $tableInfo.otherColumn)
##使用宏定义实现get,set方法     没法生成getset
    #getSetMethod($column)
#end
}

7.js

##设置回调  
##设置文件储存名字($tool.append($tableName, ".java"))
$!callback.setFileName( ${tool.append($!{tableInfo.obj.name}, ".js")})
##设置文件储存路径,默认使用选中路径
$!callback.setSavePath($tool.append($tableInfo.savePath, "/webapp/js/model"))
##类名的Repository
#set($tableName =$!{tableInfo.obj.name})

$(function () {
    //经常使用的元素放在外部
    var $!{tableInfo.obj.name}DataGrid = $("#$!{tableInfo.obj.name}DataGrid");
    var $!{tableInfo.obj.name}Dialog = $("#$!{tableInfo.obj.name}Dialog");
    var $!{tableInfo.obj.name}Form = $("#$!{tableInfo.obj.name}Form");

    //为所有的有data-method的属性的元素添加事件
    $("*[data-method]").on("click",function () {
        var methodName = $(this).data("method");
        itsource[methodName]();
    })
    //添加咱们的事件
    itsource ={
        //弹出添加框
        add(){
            //显示密码框
            $!{tableInfo.obj.name}Dialog.find("div[show]").show();
            $!{tableInfo.obj.name}Dialog.find("div[show]>input").textbox("enable");
            //弹出添加框并绝对居中
            $!{tableInfo.obj.name}Dialog.dialog("open").dialog("center");
            //清空form表单中的数据
            $!{tableInfo.obj.name}Form.form("clear");
        },
        //弹出修改框
        edit(){
            //1.获取到选中的行
            var row = $!{tableInfo.obj.name}DataGrid.datagrid("getSelected");
            //2.如果没有拿到这一行,给出提示
            if(!row){
                $.messager.alert('警告','请选中一行!',"warning");
                return;
            }
            //隐藏密码框
            $!{tableInfo.obj.name}Dialog.find("div[show]").hide();
            $!{tableInfo.obj.name}Dialog.find("div[show]>input").textbox("disable");
            //弹出添加框并绝对居中
            $!{tableInfo.obj.name}Dialog.dialog("open").dialog("center");


            //清空form表单中的数据
            $!{tableInfo.obj.name}Form.form("clear");
            //进行数据回显
            $!{tableInfo.obj.name}Form.form("load",row);
        },
        //1.弹出  2.提交
        //保存(添加与修改)功能
        save() {
            //准备默认的url路径
            var url = "/$!{tableInfo.obj.name}/save";
            //获到表单中的Id(有id就是修改)
            var $!{tableInfo.obj.name}Id = $("#$!{tableInfo.obj.name}Id").val();
            if($!{tableInfo.obj.name}Id){
                url = "/$!{tableInfo.obj.name}/update?_cmd=update";
            }
            //表单的提交
            $!{tableInfo.obj.name}Form.form('submit', {
                //提交的路径
                url: url,
                //提交前的一些代码设置,主要用于做验证
                //如果通过返回true,如果没有通过返回false(阻止提交)
                onSubmit: function () {
                    return $(this).form('validate');
                },
                //保存成功,刷新页面,保存失败,给出提示
                //注意:这里返回的是一个json字符串:{"success":true,"msg":null}
                //     不是json对象,我们是没办法直接拿它的值的
                success: function (data) {
                    var result = JSON.parse(data);
                    if(result.success){
                        //删除成功刷新页面
                        $!{tableInfo.obj.name}DataGrid.datagrid("reload");
                    }else{
                        //删除失败给出提示
                        $.messager.alert('错误',`失败的原因是:${result.msg}`,"error");
                    }
                    //关闭
                    $!{tableInfo.obj.name}Dialog.dialog("close");
                }
            })
        },
        //删除
        remove(){
            //1.获取到选中的行
            var row = $!{tableInfo.obj.name}DataGrid.datagrid("getSelected");
            //2.如果没有拿到这一行,给出提示
            if(!row){
                $.messager.alert('警告','请选中一行!',"warning");
                return;
            }
            //3.有这一行,给出删除提示
            $.messager.confirm('确认','您确认想要删除记录吗?',function(r){
                if (r){
                    //4.确定删除->Ajax删除即可
                    $.get("/$!{tableInfo.obj.name}/delete",{id:row.id},function(result){
                        if(result.success){
                            //删除成功刷新页面
                            $!{tableInfo.obj.name}DataGrid.datagrid("reload");
                        }else{
                            //删除失败给出提示
                            $.messager.alert('错误',`失败的原因是:${result.msg}`,"error");
                        }
                    })
                }
            });



        },
        //查询数据(自己想办法)
        search(){
            //获取到相应的参数值
            //拼接成一个json
            var params = $("#searchForm").serializeObject();
            $!{tableInfo.obj.name}DataGrid.datagrid("load",params);
        },
        //关闭弹出框
        closeDlg(){
            $!{tableInfo.obj.name}Dialog.dialog('close');
        }
    }

})

8.index

##设置回调  
##设置文件储存名字($tool.append($tableName, ".java"))
$!callback.setFileName( "index.jsp")
##设置文件储存路径,默认使用选中路径
$!callback.setSavePath($tool.append($tableInfo.savePath, "/webapp/WEB-INF/views/$!{tableInfo.obj.name}"))

<%--
  Created by IntelliJ IDEA.
  User: Administrator
  Date: 2019/11/9
  Time: 10:44
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
    <%--easyui的样式--%>
    <link rel="stylesheet" type="text/css" href="/easyui/themes/default/easyui.css">
    <%--easyui的图标样式--%>
    <link rel="stylesheet" type="text/css" href="/easyui/themes/icon.css">
    <%--easyui的颜色包--%>
    <link rel="stylesheet" type="text/css" href="/easyui/themes/color.css">
    <%--jquery的js--%>
    <script type="text/javascript" src="/easyui/jquery.min.js"></script>
    <%--jquery的扩展js--%>
    <script type="text/javascript" src="/easyui/plugin/jquery.jdirk.js"></script>
    <%--easyui的核心js--%>
    <script type="text/javascript" src="/easyui/jquery.easyui.min.js"></script>
    <%--easyui的国际化--%>
    <script type="text/javascript" src="/easyui/locale/easyui-lang-zh_CN.js"></script>
    <%--引入当前domain对应的js--%>
    <script type="text/javascript" src="/js/model/$!{tableInfo.obj.name}.js"></script>
</head>
<body>
<%--当前列表的工具栏--%>
<div id="toolbar">
    <a href="#" data-method="add" class="easyui-linkbutton" data-options="iconCls:'icon-add',plain:true">添加</a>
    <a href="#" data-method="edit" class="easyui-linkbutton" data-options="iconCls:'icon-edit',plain:true">修改</a>
    <a href="#" data-method="remove" class="easyui-linkbutton" data-options="iconCls:'icon-remove',plain:true">删除</a>
    <%--查询功能--%>
    <form id="searchForm">
        名称: <input name="name" id="name" class="easyui-textbox" style="width:80px">
        <a href="#" data-method="search" class="easyui-linkbutton" iconCls="icon-search">搜索</a>
    </form>
</div>
<%--当前页的列表展示--%>
<table class="easyui-datagrid" id="$!{tableInfo.obj.name}DataGrid"
       data-options="url:'/$!{tableInfo.obj.name}/page',fit:true,toolbar:'#toolbar',
       fitColumns:true,singleSelect:true,pagination:true">
    <thead>
    <tr>
        <th data-options="field:'name',width:100">名称</th>
    </tr>
    </thead>
</table>

<%-- 添加弹出框(添加和修改) --%>
<div id="$!{tableInfo.obj.name}Dialog" class="easyui-dialog" style="width:400px" data-options="title:'数据操作',closed:true,modal:true,border:'thin',buttons:'#dlg-buttons'">
    <form id="$!{tableInfo.obj.name}Form" method="post" novalidate style="margin:0;padding:20px 50px">
        <input id="$!{tableInfo.obj.name}Id" type="hidden" name="id" />
        <div style="margin-bottom:10px">
            <input name="name" class="easyui-textbox" required="true" label="名称:" style="width:100%">
        </div>
    </form>
</div>
<div id="dlg-buttons">
    <a href="javascript:void(0)" data-method="save" class="easyui-linkbutton c6" iconCls="icon-ok" style="width:90px">保存</a>
    <a href="javascript:void(0)" data-method="closeDlg" class="easyui-linkbutton" iconCls="icon-cancel" style="width:90px">取消</a>
</div>
</body>
</html>

还有几个父类

BaseDomain

package cn.potato.aisell.domain;

import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.MappedSuperclass;

/**
 * 注解,配置springData的一部分   告诉spring这是一个父类
 */
@MappedSuperclass
public class BaseDomain {
    @Id
    @GeneratedValue
    protected Long id;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }
}

BaseQuery

package cn.potato.aisell.query;

import org.apache.commons.lang3.StringUtils;
import org.springframework.data.domain.Sort;
import org.springframework.data.jpa.domain.Specification;

public abstract class BaseQuery {
    //当前页
    private int currentPage = 1;

    //每页条数
    private int pagesize = 10;
    //排序字段名
    private String orderName;
    //排序方式  true 降序  false升序
    private Boolean orderType = true;

    //前端页面需要的值 将pagesize和currentPage转化一下
    private int page;
    private int rows;

    public int getRows() {
        return rows;
    }

    public void setRows(int rows) {
        this.pagesize = rows;
    }

    public int getPage() {
        return page;
    }

    public void setPage(int page) {
        this.currentPage = page;
    }

    //加抽象方法 保证子类都必须复写
    public abstract Specification creatSpec();

    //排序方法
    public Sort creatSort(){
        //如果orderName不为空才创建排序方法
        if (StringUtils.isNotBlank(orderName)){
            //判断orderType的值  true就是Sort.Direction.DESC  false就是Sort.Direction.ASC
            Sort sort = new Sort(orderType?Sort.Direction.DESC:Sort.Direction.ASC);
            return sort;
        }
        return null;
    }

    public int getCurrentPage() {
        return currentPage;
    }
    //springData拿到的是起始页 0  但是默认当前页是1,在springDate中是第二页
    public int getJpaPage(){
        return currentPage-1;
    }

    public void setCurrentPage(int currentPage) {
        this.currentPage = currentPage;
    }

    public int getPagesize() {
        return pagesize;
    }

    public void setPagesize(int pagesize) {
        this.pagesize = pagesize;
    }

    public String getOrderName() {
        return orderName;
    }

    public void setOrderName(String orderName) {
        this.orderName = orderName;
    }

    public Boolean getOrderType() {
        return orderType;
    }

    public void setOrderType(Boolean orderType) {
        this.orderType = orderType;
    }
}


BaseRepository

package cn.potato.aisell.repository;

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.NoRepositoryBean;

import java.io.Serializable;

/**
 * 告诉spring这不是一个bean
 * @param <T>  这是传的对象
 * @param <ID> 这是主键
 */
@NoRepositoryBean

public interface BaseRepository<T,ID extends Serializable>
        extends JpaRepository<T,ID>,JpaSpecificationExecutor<T> {
}

IBaseService

package cn.potato.aisell.service;

import cn.potato.aisell.query.BaseQuery;
import org.springframework.data.domain.Page;

import java.io.Serializable;
import java.util.List;

public interface IBaseService<T,ID extends Serializable> {

    //增加和修改方法 没有ID就是新增  有ID就是修改  都是save方法
    void save(T t);
    void delete(ID id);
    T findOne(ID id);
    List<T> findAll();
    //1.根据查询条件查找对应的数据
    List<T> queryAll(BaseQuery query);
    //2.根据查询条件查找到对应的分页数据
    Page<T> queryPage(BaseQuery query);
    //3.根据JPQL进行查询
    //Object ...params 传的参数 可以有多个参数
    List<Object> queryJpql(String jpql,Object ...params);
}

BaseServiceImpl

package cn.potato.aisell.service.impl;


import cn.potato.aisell.query.BaseQuery;
import cn.potato.aisell.repository.BaseRepository;
import cn.potato.aisell.service.IBaseService;
import org.apache.velocity.runtime.directive.Foreach;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.data.jpa.domain.Specification;

import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
import java.io.Serializable;
import java.util.List;

public class BaseServiceImpl<T,ID extends Serializable> implements IBaseService<T,ID> {


    @Autowired
    private BaseRepository<T,ID> baseRepository;
    @PersistenceContext
    private EntityManager entityManager;

    @Override
    public void save(T t) {
        baseRepository.save(t);
    }

    @Override
    public void delete(ID id) {
        baseRepository.delete(id);
    }

    @Override
    public T findOne(ID id) {
        return baseRepository.findOne(id);
    }

    @Override
    public List<T> findAll() {
        return baseRepository.findAll();
    }

    /**
     *
     * @param query
     * @return
     */
    @Override
    public List<T> queryAll(BaseQuery query) {
        //拿到排序
        Sort sort =query.creatSort();
        //拿到查寻条件
        Specification<T> spec = query.creatSpec();

        List<T> list = baseRepository.findAll(spec, sort);
        return list;
    }

    @Override
    public Page<T> queryPage(BaseQuery query) {
        //先排序和分页
        Sort sort = query.creatSort();
        Pageable pageable = new PageRequest(query.getJpaPage(),query.getPagesize(),sort);

        Specification spec = query.creatSpec();
        Page<T> page = baseRepository.findAll(spec, pageable);
        return page;
    }

    @Override
    public List<Object> queryJpql(String jpql, Object... params) {
        //拿到query对象  jpql语句
        Query query = entityManager.createQuery(jpql);
        //遍历 然后把数据放到quert中
        for (int i = 0; i < params.length; i++) {

            query.setParameter(i,params[i]);
        }

        return query.getResultList();
    }
}

JsonResult

package cn.potato.aisell.common;

public class JsonResult {
    private String msg;
    private Boolean success = true;

    public JsonResult(){}
    public JsonResult(Boolean success,String msg){
        this.msg = msg;
        this.success = success;
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    public Boolean getSuccess() {
        return success;
    }

    public void setSuccess(Boolean success) {
        this.success = success;
    }
}


UIPage

package cn.potato.aisell.common;

import org.springframework.data.domain.Page;

import java.util.List;

/**
 * 传给前台的分页数据
 * @param <T>
 */
public class UIpage<T> {

    private Long total;
    private List<T> rows;

    public UIpage(Page<T> page){
        this.total=page.getTotalElements();
        this.rows=page.getContent();
    }

    public Long getTotal() {
        return total;
    }

    public void setTotal(Long total) {
        this.total = total;
    }

    public List<T> getRows() {
        return rows;
    }

    public void setRows(List<T> rows) {
        this.rows = rows;
    }
}

 类似资料: