基于javaweb+mysql的ssm+maven图书馆图书管理系统(java+ssm+jsp+js+mysql)

基于javaweb+mysql的ssm+maven图书馆图书管理系统(java+ssm+jsp+js+mysql)

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

基于javaweb+mysql的SSM+Maven图书馆图书管理系统(java+ssm+jsp+js+mysql)

项目介绍

读者角色包含以下功能: 读者登录,图书查询,借阅图书,借阅管理,修改密码,借阅记录等功能。

管理员角色包含以下功能: 管理员登录,图书管理,图书类别管理,读者列表等功能。

环境需要

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 5.数据库:MySql 5.7版本;

技术栈

  1. 后端:Spring+SpringMVC+Mybatis 2. 前端:HTML+CSS+JavaScript+jsp

使用说明

  1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行; 3. 将项目中application.yml配置文件中的数据库配置改为自己的配置; 4. 运行项目,输入localhost:8080/ 登录
        //获取类别
        List<Category> categoryList = bookService.listCategory();
        session.setAttribute(Const.CATEGORY,categoryList);
        return "index";
    }

    //显示全部图书
    @RequestMapping(value = "/listBook")
    @ResponseBody
    public String listBook(@RequestParam(value = "page", defaultValue = "1") Integer pageno,
                           @RequestParam(value = "limit", defaultValue = "5") Integer pagesize,
                           String bname,String author,String cid,HttpSession session
                           ) {

        Map<String,Object> paramMap = new HashMap();
        paramMap.put("pageno",pageno);
        paramMap.put("pagesize",pagesize);
        //判断是否为空
        if(StringUtil.isNotEmpty(bname))  paramMap.put("bname",bname);
        if(StringUtil.isNotEmpty(author))  paramMap.put("author",author);
        if(StringUtil.isNotEmpty(cid))  paramMap.put("cid",Integer.parseInt(cid));
        PageBean<Book> pageBean = bookService.queryBookPage(paramMap);

        //获取类别
        List<Category> categoryList = bookService.listCategory();
        session.setAttribute(Const.CATEGORY,categoryList);

        // 转化为json
        //List<Book> list = bookService.listAllBook(pageBean);
        //PageBean pb=bookService.getPb();
        // 讲json发送给浏览器
        // list转成json
        JSONObject obj = new JSONObject();
        // Layui table 组件要求返回的格式
        obj.put("code", 0);
        obj.put("msg", "");
        obj.put("count",pageBean.getTotalsize());
        obj.put("data", pageBean.getDatas());

        return obj.toString();

    }

    //添加图书页面
    @RequestMapping("/addBook")
    public String addbook() {
        return "book/addBook";
    }

    //添加图书
    @RequestMapping("/submitAddBook")

@Controller
@RequestMapping("/reader")
public class ReaderController {

    @Autowired
    private ReaderService readerService;

    //跳转读者列表界面
    @RequestMapping("/readerIndex")
    public String readerIndex(){
        return "readerIndex";
    }

    //读者列表异步请求
    @RequestMapping("/listReader")
    @ResponseBody
    public String listCategory(@RequestParam(value = "page", defaultValue = "1") Integer pageno,
                               @RequestParam(value = "limit", defaultValue = "5") Integer pagesize,
                               String reader_id,String name) {

        Map<String,Object> paramMap = new HashMap();
        paramMap.put("pageno",pageno);
        paramMap.put("pagesize",pagesize);
        //判断是否为空
        if(StringUtil.isNotEmpty(reader_id))  paramMap.put("reader_id",Integer.parseInt(reader_id));
        if(StringUtil.isNotEmpty(name))  paramMap.put("name",name);
        PageBean<Reader> pageBean = readerService.listReader(paramMap);
        JSONObject obj = new JSONObject();
        obj.put("code", 0);
        obj.put("msg", "");
        obj.put("count",pageBean.getTotalsize());
        obj.put("data", pageBean.getDatas());
        return obj.toString();
    }

    //添加页面跳转
    @RequestMapping("/addReader")
    public String addreader() {
        return "/reader/addReader";
    }

    }

}

@Controller
@RequestMapping("/type")
public class TypeController {

    @Autowired
    private TypeService typeService;

    //跳转到图书分类界面
    @RequestMapping("/bookType")
    public String bookType() {
        return "/book/bookType";
    }

    //图书分类异步请求
    @RequestMapping("/bookTypeList")
    @ResponseBody
    public String listCategory() {
        ArrayList<Category> categorylist= typeService.listCategory();
        JSONObject obj = new JSONObject();
        obj.put("code", 0);
        obj.put("msg", "");
        obj.put("count",categorylist.size());
        obj.put("count",categorylist.size());
        obj.put("data", categorylist);
        return obj.toString();
    }

    //修改图书类别
    @RequestMapping("/editBookType")
    @ResponseBody
    public AjaxResult editBookType(Category category) {
        AjaxResult ajaxResult = new AjaxResult();
        try{
            typeService.updateBookType(category);
            ajaxResult.setSuccess(true);
            ajaxResult.setMessage("修改成功");
        }catch (Exception e){
            e.printStackTrace();
            ajaxResult.setSuccess(false);
            ajaxResult.setMessage("修改失败");
        }
        return ajaxResult;
    }

    //删除图书类别
    @RequestMapping("/delBookType")
    @ResponseBody
    public AjaxResult delBookType(Integer cid) {
        AjaxResult ajaxResult = new AjaxResult();
        try{
            typeService.delBookType(cid);
            ajaxResult.setSuccess(true);
        }catch (Exception e){
            e.printStackTrace();
            ajaxResult.setSuccess(false);
            ajaxResult.setMessage("删除失败");
        }
        return ajaxResult;
    }

    //添加加图书类别

@Controller
@RequestMapping("/library")
public class libraryController {

    @Autowired
    private BookService bookService;
    @Autowired
    private LendInfoSerivce lendInfoSerivce;

    @RequestMapping("/index")
    public String index(HttpSession session){
        //获取类别
        List<Category> categoryList = bookService.listCategory();
        session.setAttribute(Const.CATEGORY,categoryList);
        return "index";
    }

    //显示全部图书
    @RequestMapping(value = "/listBook")
    @ResponseBody
    public String listBook(@RequestParam(value = "page", defaultValue = "1") Integer pageno,
                           @RequestParam(value = "limit", defaultValue = "5") Integer pagesize,
                           String bname,String author,String cid,HttpSession session
                           ) {

        Map<String,Object> paramMap = new HashMap();
        paramMap.put("pageno",pageno);
        paramMap.put("pagesize",pagesize);
        //判断是否为空
        if(StringUtil.isNotEmpty(bname))  paramMap.put("bname",bname);
        if(StringUtil.isNotEmpty(author))  paramMap.put("author",author);
            ajaxResult.setMessage("添加成功");
        }catch (Exception e){
            e.printStackTrace();
            ajaxResult.setSuccess(false);
            ajaxResult.setMessage("添加失败");
        }
        return ajaxResult;
    }

    //跳转读者借阅界面readerIndex.jsp
    @RequestMapping("/frontIndex")
    public String frontIndex() {
        return "frontIndex";
    }

    @SuppressWarnings("unlikely-arg-type")
	@RequestMapping("/lendBook")
    @ResponseBody
    public AjaxResult borrowBook(Integer book_id,HttpSession session) {
        AjaxResult ajaxResult = new AjaxResult();

        Reader reader = (Reader)session.getAttribute(Const.READER);
        //判断库存是否足够
        Book book = bookService.selectById(book_id);
        if (book.getStock()==0){
            ajaxResult.setStatus("2");
            return ajaxResult;
        }

        //判断该读者是否已经借过该图书
        LendInfo lendInfo = new LendInfo();
        lendInfo.setBook_id(book_id);
        lendInfo.setReader_id(reader.getReader_id());
        if (lendInfoSerivce.isLended(lendInfo)){
            ajaxResult.setStatus("0");
            return ajaxResult;
        }
        //判断是否达到借书上限
        Integer cardState = lendInfoSerivce.cardState(reader.getReader_id());
        if (cardState.equals(reader.getCard_state())){
            ajaxResult.setStatus("3");
            return ajaxResult;

        }
        lendInfoSerivce.lendBook(lendInfo);
        ajaxResult.setStatus("1");
        return ajaxResult;
    }
    //跳转读者借阅记录页面
    @RequestMapping("/listDisBack")
    public  String listDisBack() {
        return "listDisBack";
    }

    @RequestMapping("/listDisBackBook")
    @ResponseBody
    public String listDisBackBook(@RequestParam(value = "page", defaultValue = "1") Integer pageno,
                                  @RequestParam(value = "limit", defaultValue = "5") Integer pagesize,
                                  @RequestParam(value = "power",defaultValue = "0") Integer power,
                                  String rname,String bname,String state){

        Map<String,Object> paramMap = new HashMap();
        paramMap.put("pageno",pageno);
        paramMap.put("pagesize",pagesize);
        if(StringUtil.isNotEmpty(bname))  paramMap.put("bname",bname);
        if(StringUtil.isNotEmpty(rname))  paramMap.put("rname",rname);
        if(StringUtil.isNotEmpty(state))  paramMap.put("state",state);
        //为0说明是读者,1说明是管理员点击未还图书
        if (power.equals(0)){
            //读者号
            //pageBean.setAdminId(admin.getAdminId());
            //读者姓名
            //pageBean.setRname(admin.getName());
        }
        PageBean<LendInfo> pageBean = lendInfoSerivce.queryLeadInfoPage(paramMap);
        JSONObject obj = new JSONObject();
        // Layui table 组件要求返回的格式
        obj.put("code", 0);
        obj.put("msg", "");
        obj.put("count",pageBean.getTotalsize());
        obj.put("data", pageBean.getDatas());
        return obj.toString();
    }

    //管理员归还图书
    @RequestMapping(value = "/backBook")
    @ResponseBody
    public AjaxResult backBook(@RequestParam(value = "reader_id" , defaultValue = "1") Integer reader_id,
                                         @RequestParam(value = "book_id" , defaultValue = "1") Integer book_id) {

        AjaxResult ajaxResult = new AjaxResult();
        Map<String, Object> ret = new HashMap<String, Object>();
        ret.put("reader_id",reader_id);
        ret.put("book_id",book_id);
        try{
            lendInfoSerivce.backBook(ret);
            ajaxResult.setSuccess(true);
            ajaxResult.setMessage("已归还");
        }catch (Exception e){
            e.printStackTrace();
            ajaxResult.setSuccess(false);
            ajaxResult.setMessage("归还失败");
        Integer cardState = lendInfoSerivce.cardState(reader.getReader_id());
        if (cardState.equals(reader.getCard_state())){
            ajaxResult.setStatus("3");
            return ajaxResult;

        }
        lendInfoSerivce.lendBook(lendInfo);
        ajaxResult.setStatus("1");
        return ajaxResult;
    }

}

@Controller
@RequestMapping("/reader")
public class ReaderController {

    @Autowired
    private ReaderService readerService;

    //跳转读者列表界面
    @RequestMapping("/readerIndex")
    public String readerIndex(){
        return "readerIndex";
    }

    //读者列表异步请求
    @RequestMapping("/listReader")
    @ResponseBody
    public String listCategory(@RequestParam(value = "page", defaultValue = "1") Integer pageno,
                               @RequestParam(value = "limit", defaultValue = "5") Integer pagesize,
                               String reader_id,String name) {

        Map<String,Object> paramMap = new HashMap();
        paramMap.put("pageno",pageno);
        paramMap.put("pagesize",pagesize);
        return "listDisBack";
    }

    @RequestMapping("/listDisBackBook")
    @ResponseBody
    public String listDisBackBook(@RequestParam(value = "page", defaultValue = "1") Integer pageno,
                                  @RequestParam(value = "limit", defaultValue = "5") Integer pagesize,
                                  @RequestParam(value = "power",defaultValue = "0") Integer power,
                                  String rname,String bname,String state){

        Map<String,Object> paramMap = new HashMap();
        paramMap.put("pageno",pageno);
        paramMap.put("pagesize",pagesize);
        if(StringUtil.isNotEmpty(bname))  paramMap.put("bname",bname);
        if(StringUtil.isNotEmpty(rname))  paramMap.put("rname",rname);
        if(StringUtil.isNotEmpty(state))  paramMap.put("state",state);
        //为0说明是读者,1说明是管理员点击未还图书
        if (power.equals(0)){
            //读者号
            //pageBean.setAdminId(admin.getAdminId());
            //读者姓名
            //pageBean.setRname(admin.getName());
        }
        PageBean<LendInfo> pageBean = lendInfoSerivce.queryLeadInfoPage(paramMap);
        JSONObject obj = new JSONObject();
        // Layui table 组件要求返回的格式
        obj.put("code", 0);
        obj.put("msg", "");
        obj.put("count",pageBean.getTotalsize());
        obj.put("data", pageBean.getDatas());
        return obj.toString();
    }

    //管理员归还图书
    @RequestMapping(value = "/backBook")
    @ResponseBody
    public AjaxResult backBook(@RequestParam(value = "reader_id" , defaultValue = "1") Integer reader_id,
                                         @RequestParam(value = "book_id" , defaultValue = "1") Integer book_id) {

        AjaxResult ajaxResult = new AjaxResult();
        Map<String, Object> ret = new HashMap<String, Object>();
        ret.put("reader_id",reader_id);
        ret.put("book_id",book_id);
            }
        }catch (Exception e){
            e.printStackTrace();
            ajaxResult.setStatus("3");
            ajaxResult.setMessage("服务器异常,请改天登录");
        }

        return ajaxResult;
    }

    //推出
    @RequestMapping("/loginout")
    public String loginout(HttpSession session){
        session.invalidate();
        return "login";
    }

    //跳转借阅管理页面
    @RequestMapping("/listDisBackAdmin")
    public  String listDisBackAdmin() {
        return "listDisBackAdmin";
    }

    //跳转读者借阅记录页面
    @RequestMapping("/listDisBack")
    public  String listDisBack() {
        return "listDisBack";
    }

    @RequestMapping("/listDisBackBook")
    @ResponseBody
    public String listDisBackBook(@RequestParam(value = "page", defaultValue = "1") Integer pageno,
                                  @RequestParam(value = "limit", defaultValue = "5") Integer pagesize,
                                  @RequestParam(value = "power",defaultValue = "0") Integer power,
                                  String rname,String bname,String state){

        Map<String,Object> paramMap = new HashMap();
        paramMap.put("pageno",pageno);
        paramMap.put("pagesize",pagesize);
        if(StringUtil.isNotEmpty(bname))  paramMap.put("bname",bname);

    //跳转读者借阅记录页面
    @RequestMapping("/listDisBack")
    public  String listDisBack() {
        return "listDisBack";
    }

    @RequestMapping("/listDisBackBook")
    @ResponseBody
    public String listDisBackBook(@RequestParam(value = "page", defaultValue = "1") Integer pageno,
                                  @RequestParam(value = "limit", defaultValue = "5") Integer pagesize,
                                  @RequestParam(value = "power",defaultValue = "0") Integer power,
                                  String rname,String bname,String state){

        Map<String,Object> paramMap = new HashMap();
        paramMap.put("pageno",pageno);
        paramMap.put("pagesize",pagesize);
        if(StringUtil.isNotEmpty(bname))  paramMap.put("bname",bname);
        if(StringUtil.isNotEmpty(rname))  paramMap.put("rname",rname);
        if(StringUtil.isNotEmpty(state))  paramMap.put("state",state);
        //为0说明是读者,1说明是管理员点击未还图书
        if (power.equals(0)){
            //读者号
            //pageBean.setAdminId(admin.getAdminId());
            //读者姓名
            //pageBean.setRname(admin.getName());
        }
        PageBean<LendInfo> pageBean = lendInfoSerivce.queryLeadInfoPage(paramMap);
        JSONObject obj = new JSONObject();
        // Layui table 组件要求返回的格式
        obj.put("code", 0);
        obj.put("msg", "");
        obj.put("count",pageBean.getTotalsize());
        obj.put("data", pageBean.getDatas());
        return obj.toString();
    }

    //管理员归还图书
    @RequestMapping(value = "/backBook")
    @ResponseBody
    public AjaxResult backBook(@RequestParam(value = "reader_id" , defaultValue = "1") Integer reader_id,
                                         @RequestParam(value = "book_id" , defaultValue = "1") Integer book_id) {

        AjaxResult ajaxResult = new AjaxResult();
        Map<String, Object> ret = new HashMap<String, Object>();
        ret.put("reader_id",reader_id);
        ret.put("book_id",book_id);
        try{
            lendInfoSerivce.backBook(ret);
            ajaxResult.setSuccess(true);
    public AjaxResult checkPwd(String password,String state,HttpSession session){
        AjaxResult ajaxResult = new AjaxResult();
        if (state.equals("0")){
            Admin admin = (Admin)session.getAttribute(Const.ADMIN);
            if(admin.getPassword().equals(password)){
                ajaxResult.setSuccess(true);
            }else{
                ajaxResult.setSuccess(false);
                ajaxResult.setMessage("原密码错误");
            }
        }else{
            Reader reader = (Reader)session.getAttribute(Const.READER);
            if(reader.getPassword().equals(password)){
                ajaxResult.setSuccess(true);
            }else{
                ajaxResult.setSuccess(false);
                ajaxResult.setMessage("原密码错误");
            }
        }

        return ajaxResult;
    }

    //修改密码
    @RequestMapping("/alterpwd")
    @ResponseBody
    public AjaxResult alterpwd(String password,String state,HttpSession session){
        AjaxResult ajaxResult = new AjaxResult();

        try{
            if(state.equals("0")){
                Admin admin = (Admin)session.getAttribute(Const.ADMIN);
                admin.setPassword(password);
                adminService.alterpwd(admin);
            }else{
                Reader reader = (Reader)session.getAttribute(Const.READER);
                reader.setPassword(password);
                readerService.alterpwd(reader);
            }
            ajaxResult.setSuccess(true);
            ajaxResult.setMessage("更改密码成功");
        }catch(Exception e){
            e.printStackTrace();
            ajaxResult.setSuccess(false);
            ajaxResult.setMessage("更改密码失败");

        return "listDisBack";
    }

    @RequestMapping("/listDisBackBook")
    @ResponseBody
    public String listDisBackBook(@RequestParam(value = "page", defaultValue = "1") Integer pageno,
                                  @RequestParam(value = "limit", defaultValue = "5") Integer pagesize,
                                  @RequestParam(value = "power",defaultValue = "0") Integer power,
                                  String rname,String bname,String state){

        Map<String,Object> paramMap = new HashMap();
        paramMap.put("pageno",pageno);
        paramMap.put("pagesize",pagesize);
        if(StringUtil.isNotEmpty(bname))  paramMap.put("bname",bname);
        if(StringUtil.isNotEmpty(rname))  paramMap.put("rname",rname);
        if(StringUtil.isNotEmpty(state))  paramMap.put("state",state);
        //为0说明是读者,1说明是管理员点击未还图书
        if (power.equals(0)){
            //读者号
            //pageBean.setAdminId(admin.getAdminId());
            //读者姓名
            //pageBean.setRname(admin.getName());
        }
        PageBean<LendInfo> pageBean = lendInfoSerivce.queryLeadInfoPage(paramMap);
        JSONObject obj = new JSONObject();
        // Layui table 组件要求返回的格式
        obj.put("code", 0);
        obj.put("msg", "");
        obj.put("count",pageBean.getTotalsize());
        obj.put("data", pageBean.getDatas());
        return obj.toString();
    }

    //管理员归还图书
    @RequestMapping(value = "/backBook")
    @ResponseBody
    public AjaxResult backBook(@RequestParam(value = "reader_id" , defaultValue = "1") Integer reader_id,
                                         @RequestParam(value = "book_id" , defaultValue = "1") Integer book_id) {

        AjaxResult ajaxResult = new AjaxResult();
        Map<String, Object> ret = new HashMap<String, Object>();
        ret.put("reader_id",reader_id);
        ret.put("book_id",book_id);
        try{
            lendInfoSerivce.backBook(ret);
            ajaxResult.setSuccess(true);
            ajaxResult.setMessage("已归还");
        }catch (Exception e){
            e.printStackTrace();
            ajaxResult.setSuccess(false);
            ajaxResult.setMessage("归还失败");
        }
        return ajaxResult;

@Controller
@RequestMapping("/type")
public class TypeController {

    @Autowired
    private TypeService typeService;

    //跳转到图书分类界面
    @RequestMapping("/bookType")
    public String bookType() {
        return "/book/bookType";
    }

    //图书分类异步请求
    @RequestMapping("/bookTypeList")
    @ResponseBody
    public String listCategory() {
        ArrayList<Category> categorylist= typeService.listCategory();
        JSONObject obj = new JSONObject();
        obj.put("code", 0);
        obj.put("msg", "");
        obj.put("count",categorylist.size());
        obj.put("data", categorylist);
        return obj.toString();
    }

    //修改图书类别
    @RequestMapping("/editBookType")
    @ResponseBody
    public AjaxResult editBookType(Category category) {
        AjaxResult ajaxResult = new AjaxResult();
        try{
    @RequestMapping("/checkPwd")
    @ResponseBody
    public AjaxResult checkPwd(String password,String state,HttpSession session){
        AjaxResult ajaxResult = new AjaxResult();
        if (state.equals("0")){
            Admin admin = (Admin)session.getAttribute(Const.ADMIN);
            if(admin.getPassword().equals(password)){
                ajaxResult.setSuccess(true);
            }else{
                ajaxResult.setSuccess(false);
                ajaxResult.setMessage("原密码错误");
            }
        }else{
            Reader reader = (Reader)session.getAttribute(Const.READER);
            if(reader.getPassword().equals(password)){
                ajaxResult.setSuccess(true);
            }else{
                ajaxResult.setSuccess(false);
                ajaxResult.setMessage("原密码错误");
            }
        }

        return ajaxResult;
    }

    //修改密码
    @RequestMapping("/alterpwd")
    @ResponseBody
    public AjaxResult alterpwd(String password,String state,HttpSession session){
        AjaxResult ajaxResult = new AjaxResult();

        try{
            if(state.equals("0")){
                Admin admin = (Admin)session.getAttribute(Const.ADMIN);
                admin.setPassword(password);
                adminService.alterpwd(admin);
            }else{
                Reader reader = (Reader)session.getAttribute(Const.READER);
                reader.setPassword(password);
                readerService.alterpwd(reader);
            }
            ajaxResult.setSuccess(true);
            ajaxResult.setMessage("更改密码成功");
    @SuppressWarnings("unlikely-arg-type")
	@RequestMapping("/lendBook")
    @ResponseBody
    public AjaxResult borrowBook(Integer book_id,HttpSession session) {
        AjaxResult ajaxResult = new AjaxResult();

        Reader reader = (Reader)session.getAttribute(Const.READER);
        //判断库存是否足够
        Book book = bookService.selectById(book_id);
        if (book.getStock()==0){
            ajaxResult.setStatus("2");
            return ajaxResult;
        }

        //判断该读者是否已经借过该图书
        LendInfo lendInfo = new LendInfo();
        lendInfo.setBook_id(book_id);
        lendInfo.setReader_id(reader.getReader_id());
        if (lendInfoSerivce.isLended(lendInfo)){
            ajaxResult.setStatus("0");
            return ajaxResult;
        }
        //判断是否达到借书上限
        Integer cardState = lendInfoSerivce.cardState(reader.getReader_id());
        if (cardState.equals(reader.getCard_state())){
            ajaxResult.setStatus("3");
            return ajaxResult;

        }
        lendInfoSerivce.lendBook(lendInfo);
        ajaxResult.setStatus("1");
        return ajaxResult;
    }

}

            e.printStackTrace();
            ajaxResult.setSuccess(false);
            ajaxResult.setMessage("更改密码失败");

        }
        return ajaxResult;
    }

}

@Controller
@RequestMapping("/library")
public class libraryController {

    @Autowired
    private BookService bookService;
    @Autowired
    private LendInfoSerivce lendInfoSerivce;

    @RequestMapping("/index")
    public String index(HttpSession session){
        //获取类别
        List<Category> categoryList = bookService.listCategory();
        session.setAttribute(Const.CATEGORY,categoryList);

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值