基于javaweb+mysql的ssm+maven在线选课管理系统(java+ssm+jsp+bootstrap+mysql)

基于javaweb+mysql的ssm+maven在线选课管理系统(java+ssm+jsp+bootstrap+mysql)

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

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

适用

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

功能说明

基于javaweb+mysql的SSM+Maven在线选课管理系统(java+ssm+jsp+bootstrap+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.是否Maven项目:是;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven项目 6.数据库:MySql 5.7版本;

软件架构

系统是一个基于SSM框架实现的项目,采用当前最流行的框架Spring-SpringMVC-MyBatis设计。 前端:HTML+BootStrap+CSS+Javascript 后端:Spring+SpringMVC+mybatis

使用说明

1.使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven; 若为maven项目,导入成功后请执行maven clean;maven install命令,下载所需jar包; 2.使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 3.将项目中db.properties配置文件中的数据库配置改为自己的配置 4.配置tomcat,然后运行项目,输入localhost:8080/xxx登录

            req.getSession().setAttribute("msg", "登录失败!用户名或密码错误!");
        }
        return "redirect:/index";
    }

    @RequestMapping("/logout")
    public String userLogout(HttpServletRequest req) {
        req.getSession().setAttribute("user", null);
        req.getSession().setAttribute("userId", null);
        return "redirect:/index";
    }

    @RequestMapping("/changePwd")
    public String changePwd(HttpServletRequest req, @RequestParam String old,
                            @RequestParam String newpwd, @RequestParam String newagain) {

        String stuId = (String) req.getSession().getAttribute("userId");
        if (newpwd.equals(newagain) && studentService.changePwd(stuId, old, newpwd)) {
            req.getSession().setAttribute("msg", "修改成功!");
        } else {
            req.getSession().setAttribute("msg", "修改失败!");
        }
        return "redirect:/index";
    }

    @RequestMapping("/adminLogin")
    public String adminLogin(@RequestParam String username,@RequestParam String pwd,HttpServletRequest req){
        if (username.length() > 0 && username.length() < 20 && pwd.length() > 0 && pwd.length() < 20) {
            if(adminService.login(username, pwd)){
                req.getSession().setAttribute("id",username);
                return "redirect:adminIndex";
            }
        }
        return "adminLogin";
    }

}

		Page page = (Page) request.getAttribute(bean);
		if (page == null)
			return SKIP_BODY;
		url = resolveUrl(url, pageContext);
		try {
			// 计算总页数
			int pageCount = page.getTotal() / page.getSize();
			if (page.getTotal() % page.getSize() > 0) {
				pageCount++;
			}
			writer.print("<nav><ul class=\"pagination\">");
			//首页链接路径
			String homeUrl = append(url, "page", 1);
			//末页链接路径
			String backUrl = append(url, "page", pageCount);
			// 显示“上一页”按钮
			if (page.getPage() > 1) {
				String preUrl = append(url, "page", page.getPage() - 1);
				preUrl = append(preUrl, "rows", page.getSize());
		writer.print("<li><a href=\"" + homeUrl + "\">" + "首页</a></li>");
		writer.print("<li><a href=\"" + preUrl + "\">" + "上一页</a></li>");
			} else {
writer.print("<li class=\"disabled\"><a href=\"#\">" + "首页 </a></li>");
writer.print("<li class=\"disabled\"><a href=\"#\">" + "上一页 </a></li>");
			}
			// 显示当前页码的前2页码和后两页码
			// 若1 则 1 2 3 4 5, 若2 则 1 2 3 4 5, 若3 则1 2 3 4 5,
			// 若4 则 2 3 4 5 6 ,若10 则 8 9 10 11 12
			int indexPage =1;
			if(page.getPage() - 4 <=0){
				indexPage=1;
			}else if(pageCount-page.getPage() <=2){
				indexPage=pageCount-4;
			}else{
				indexPage= page.getPage() - 2;
			}
    for (int i= 1;i <= number && indexPage <= pageCount;indexPage++,i++){
				if (indexPage == page.getPage()) {
			writer.print("<li class=\"active\"><a href=\"#\">" + indexPage
				+"<spanclass=\"sr-only\"></span></a></li>");
					continue;
    public String addChoose(HttpServletRequest req, @RequestParam String stuId, @RequestParam String clzId) {
        String msg = null;
        try {
            Integer cId = Integer.parseInt(clzId);
            Student s = adminService.getStudentById(stuId);
            Course c = adminService.getCourseById(cId);
            if (s != null && c != null) {
                if(c.getAmount()>c.getSelected()) {
                    int rst = studentService.selectCource(stuId, cId);
                    if (rst==0) {
                        msg = "添加成功";
                    } else if(rst==1){
                        msg = "已经选过此课!";
                    } else if(rst==2){
                        msg="该课程已选满!";
                    }else{
                        msg="未知错误!";
                    }
                }
            }else{
                msg="添加失败";
            }
        } catch (Exception e) {
            msg = "添加失败";
            e.printStackTrace();
        } finally {
            req.getSession().setAttribute("msg", msg);
            return "redirect:/chooseManage";
        }
    }

}

            Student s = adminService.getStudentById(stuId);
            Course c = adminService.getCourseById(cId);
            if (s != null && c != null) {
                if(c.getAmount()>c.getSelected()) {
                    int rst = studentService.selectCource(stuId, cId);
                    if (rst==0) {
                        msg = "添加成功";
                    } else if(rst==1){
                        msg = "已经选过此课!";
                    } else if(rst==2){
                        msg="该课程已选满!";
                    }else{
                        msg="未知错误!";
                    }
                }
            }else{
                msg="添加失败";
            }
        } catch (Exception e) {
            msg = "添加失败";
            e.printStackTrace();
        } finally {
            req.getSession().setAttribute("msg", msg);
            return "redirect:/chooseManage";
        }
    }

}

			// 若4 则 2 3 4 5 6 ,若10 则 8 9 10 11 12
			int indexPage =1;
			if(page.getPage() - 4 <=0){
				indexPage=1;
			}else if(pageCount-page.getPage() <=2){
				indexPage=pageCount-4;
			}else{
				indexPage= page.getPage() - 2;
			}
    for (int i= 1;i <= number && indexPage <= pageCount;indexPage++,i++){
				if (indexPage == page.getPage()) {
			writer.print("<li class=\"active\"><a href=\"#\">" + indexPage
				+"<spanclass=\"sr-only\"></span></a></li>");
					continue;
				}
				String pageUrl = append(url, "page", indexPage);
				pageUrl = append(pageUrl, "rows", page.getSize());
writer.print("<li><a href=\"" + pageUrl + "\">" + indexPage + "</a></li>");
			}
			// 显示“下一页”按钮
			if (page.getPage() < pageCount) {
				String nextUrl = append(url, "page", page.getPage() + 1);
				nextUrl = append(nextUrl, "rows", page.getSize());
		writer.print("<li><a href=\"" + nextUrl + "\">" + "下一页</a></li>");
		writer.print("<li><a href=\"" + backUrl + "\">" + "尾页</a></li>");
			} else {
writer.print("<li class=\"disabled\"><a href=\"#\">" + "下一页</a></li>");
writer.print("<li class=\"disabled\"><a href=\"#\">" + "尾页</a></li>");
			}
			writer.print("</nav>");
		} catch (IOException e) {
			e.printStackTrace();
		}
		return SKIP_BODY;
	}

	private String append(String url, String key, int value) {
		return append(url, key, String.valueOf(value));
	}
	/**
	 * 为url 参加参数对儿
	 */
	private String append(String url, String key, String value) {
		if (url == null || url.trim().length() == 0) {
			return "";
		}
		if (url.indexOf("?") == -1) {
			url = url + "?" + key + "=" + value;
		} else {
			if (url.endsWith("?")) {
        req.getSession().setAttribute("students", students.getRows());
        model.addAttribute("page", students);
        return "WEB-INF/pages/student/allStudents";
    }

    //后台课程管理
    @RequestMapping("/courseManage")
    public String courseManage(@RequestParam(defaultValue="1")Integer page, 
			@RequestParam(defaultValue="5")Integer rows,HttpServletRequest req,Model model){
        if(req.getSession().getAttribute("id")==null){
            return "adminLogin";
        }
        Page<Course> courses=adminService.getPageAllCourses(page,rows);
        req.getSession().setAttribute("courses", courses.getRows());
        model.addAttribute("page", courses);
        return "WEB-INF/pages/course/allCourses";
    }

    @RequestMapping("/adminIndex")
    public String showChart(HttpServletRequest req){
        if(req.getSession().getAttribute("id")==null){
            return "adminLogin";
        }
        List<Course> courses=adminService.getAllCourses();
        List<String> listX=new ArrayList<String>();
        List<Integer> listSelected=new ArrayList<Integer>();
        List<Integer> listLeft=new ArrayList<Integer>();
        for(Course course:courses){
            listX.add(course.getName());
            listSelected.add(course.getSelected());
            listLeft.add(course.getAmount()-course.getSelected());
        }

        req.getSession().setAttribute("listX", JSON.toJSONString(listX));
        req.getSession().setAttribute("listSelected",JSON.toJSONString(listSelected));
        req.getSession().setAttribute("listLeft",JSON.toJSONString(listLeft));
        return "WEB-INF/pages/admin/admin";
    }

    @RequestMapping("/404")
    public String pageNotFount(){
        return "404";
    }

}

        model.addAttribute("page", courses);
        return "WEB-INF/pages/course/clzList";
    }

    //分页获取我的选课列表
    @RequestMapping("/showMyClasses")
    public String showMyClzs(@RequestParam(defaultValue="1")Integer page, 
			@RequestParam(defaultValue="5")Integer rows,HttpServletRequest req,Model model) {
        String id = (String) req.getSession().getAttribute("userId");
        Page<StudyInfo> studyInfos=null;
        if(id!=null){
            studyInfos = studyService.getAllClzByStuId(id,page,rows);
            req.getSession().setAttribute("clzs", studyInfos.getRows());
            model.addAttribute("page", studyInfos);
        }else{
        	req.getSession().setAttribute("clzs", null);
        }
        
        return "WEB-INF/pages/course/myClzs";
    }

     //学生管理,分页获取学生列表
    @RequestMapping("/studentManage")
    public String studentManage(@RequestParam(defaultValue="1")Integer page, 
			@RequestParam(defaultValue="5")Integer rows,HttpServletRequest req,Model model){
        if(req.getSession().getAttribute("id")==null){
            return "adminLogin";
        }
        Page<Student> students=adminService.getAllStudents(page,rows);
        req.getSession().setAttribute("students", students.getRows());
        model.addAttribute("page", students);
        return "WEB-INF/pages/student/allStudents";
    }

    //后台课程管理
    @RequestMapping("/courseManage")
    public String courseManage(@RequestParam(defaultValue="1")Integer page, 
			@RequestParam(defaultValue="5")Integer rows,HttpServletRequest req,Model model){
        if(req.getSession().getAttribute("id")==null){
            return "adminLogin";
        }
        Page<Course> courses=adminService.getPageAllCourses(page,rows);
        req.getSession().setAttribute("courses", courses.getRows());
        model.addAttribute("page", courses);
        return "WEB-INF/pages/course/allCourses";
    }

    @RequestMapping("/adminIndex")
    public String showChart(HttpServletRequest req){
            Course c = adminService.getCourseById(cId);
            if (s != null && c != null) {
                if(c.getAmount()>c.getSelected()) {
                    int rst = studentService.selectCource(stuId, cId);
                    if (rst==0) {
                        msg = "添加成功";
                    } else if(rst==1){
                        msg = "已经选过此课!";
                    } else if(rst==2){
                        msg="该课程已选满!";
                    }else{
                        msg="未知错误!";
                    }
                }
            }else{
                msg="添加失败";
            }
        } catch (Exception e) {
            msg = "添加失败";
            e.printStackTrace();
        } finally {
            req.getSession().setAttribute("msg", msg);
            return "redirect:/chooseManage";
        }
    }

}

		writer.print("<li><a href=\"" + nextUrl + "\">" + "下一页</a></li>");
		writer.print("<li><a href=\"" + backUrl + "\">" + "尾页</a></li>");
			} else {
writer.print("<li class=\"disabled\"><a href=\"#\">" + "下一页</a></li>");
writer.print("<li class=\"disabled\"><a href=\"#\">" + "尾页</a></li>");
			}
			writer.print("</nav>");
		} catch (IOException e) {
			e.printStackTrace();
		}
		return SKIP_BODY;
	}

	private String append(String url, String key, int value) {
		return append(url, key, String.valueOf(value));
	}
	/**
	 * 为url 参加参数对儿
	 */
	private String append(String url, String key, String value) {
		if (url == null || url.trim().length() == 0) {
			return "";
		}
		if (url.indexOf("?") == -1) {
			url = url + "?" + key + "=" + value;
		} else {
			if (url.endsWith("?")) {
				url = url + key + "=" + value;
			} else {
				url = url + "&amp;" + key + "=" + value;
			}
		}
		return url;
	}
	/**
	 * 为url 添加翻页请求参数
	 */
	private String resolveUrl(String url, 
        javax.servlet.jsp.PageContext pageContext) throws JspException {
		Map params = pageContext.getRequest().getParameterMap();
		for (Object key : params.keySet()) {
			if ("page".equals(key) || "rows".equals(key)){
}    

//系统用户登录
@Controller
public class LoginController {

    @Autowired
    private IStudentService studentService;

    @Autowired
    private IAdminService adminService;

    @RequestMapping("/login")
    public String userLogin(@RequestParam String id, @RequestParam String pwd, HttpServletRequest req) {
        Student student = null;
        if (id.length() > 0 && id.length() < 20 && pwd.length() > 0 && pwd.length() < 20) {
            student = studentService.login(id, pwd);
        }
        if (student != null) {
            req.getSession().setAttribute("user", student.getName());
            req.getSession().setAttribute("userId", student.getId());
//            req.getSession().setAttribute("msg","登录成功!欢迎您 "+student.getName()+"!");
        } else {
            req.getSession().setAttribute("msg", "登录失败!用户名或密码错误!");
        }
        return "redirect:/index";
    }

    @RequestMapping("/logout")
    public String userLogout(HttpServletRequest req) {
			}
			writer.print("<nav><ul class=\"pagination\">");
			//首页链接路径
			String homeUrl = append(url, "page", 1);
			//末页链接路径
			String backUrl = append(url, "page", pageCount);
			// 显示“上一页”按钮
			if (page.getPage() > 1) {
				String preUrl = append(url, "page", page.getPage() - 1);
				preUrl = append(preUrl, "rows", page.getSize());
		writer.print("<li><a href=\"" + homeUrl + "\">" + "首页</a></li>");
		writer.print("<li><a href=\"" + preUrl + "\">" + "上一页</a></li>");
			} else {
writer.print("<li class=\"disabled\"><a href=\"#\">" + "首页 </a></li>");
writer.print("<li class=\"disabled\"><a href=\"#\">" + "上一页 </a></li>");
			}
			// 显示当前页码的前2页码和后两页码
			// 若1 则 1 2 3 4 5, 若2 则 1 2 3 4 5, 若3 则1 2 3 4 5,
			// 若4 则 2 3 4 5 6 ,若10 则 8 9 10 11 12
			int indexPage =1;
			if(page.getPage() - 4 <=0){
				indexPage=1;
			}else if(pageCount-page.getPage() <=2){
				indexPage=pageCount-4;
			}else{
				indexPage= page.getPage() - 2;
			}
    for (int i= 1;i <= number && indexPage <= pageCount;indexPage++,i++){
				if (indexPage == page.getPage()) {
			writer.print("<li class=\"active\"><a href=\"#\">" + indexPage
				+"<spanclass=\"sr-only\"></span></a></li>");
					continue;
				}
				String pageUrl = append(url, "page", indexPage);
				pageUrl = append(pageUrl, "rows", page.getSize());
writer.print("<li><a href=\"" + pageUrl + "\">" + indexPage + "</a></li>");
			}
			// 显示“下一页”按钮
			if (page.getPage() < pageCount) {
				String nextUrl = append(url, "page", page.getPage() + 1);
				nextUrl = append(nextUrl, "rows", page.getSize());
		writer.print("<li><a href=\"" + nextUrl + "\">" + "下一页</a></li>");
		writer.print("<li><a href=\"" + backUrl + "\">" + "尾页</a></li>");
				preUrl = append(preUrl, "rows", page.getSize());
		writer.print("<li><a href=\"" + homeUrl + "\">" + "首页</a></li>");
		writer.print("<li><a href=\"" + preUrl + "\">" + "上一页</a></li>");
			} else {
writer.print("<li class=\"disabled\"><a href=\"#\">" + "首页 </a></li>");
writer.print("<li class=\"disabled\"><a href=\"#\">" + "上一页 </a></li>");
			}
			// 显示当前页码的前2页码和后两页码
			// 若1 则 1 2 3 4 5, 若2 则 1 2 3 4 5, 若3 则1 2 3 4 5,
			// 若4 则 2 3 4 5 6 ,若10 则 8 9 10 11 12
			int indexPage =1;
			if(page.getPage() - 4 <=0){
				indexPage=1;
			}else if(pageCount-page.getPage() <=2){
				indexPage=pageCount-4;
			}else{
				indexPage= page.getPage() - 2;
			}
    for (int i= 1;i <= number && indexPage <= pageCount;indexPage++,i++){
				if (indexPage == page.getPage()) {
			writer.print("<li class=\"active\"><a href=\"#\">" + indexPage
				+"<spanclass=\"sr-only\"></span></a></li>");
					continue;
				}
				String pageUrl = append(url, "page", indexPage);
				pageUrl = append(pageUrl, "rows", page.getSize());
writer.print("<li><a href=\"" + pageUrl + "\">" + indexPage + "</a></li>");
			}
			// 显示“下一页”按钮
			if (page.getPage() < pageCount) {
				String nextUrl = append(url, "page", page.getPage() + 1);
				nextUrl = append(nextUrl, "rows", page.getSize());
		writer.print("<li><a href=\"" + nextUrl + "\">" + "下一页</a></li>");
		writer.print("<li><a href=\"" + backUrl + "\">" + "尾页</a></li>");
			} else {
writer.print("<li class=\"disabled\"><a href=\"#\">" + "下一页</a></li>");
writer.print("<li class=\"disabled\"><a href=\"#\">" + "尾页</a></li>");
			}
			writer.print("</nav>");
		} catch (IOException e) {
			e.printStackTrace();
		}
		return SKIP_BODY;
	}

        javax.servlet.jsp.PageContext pageContext) throws JspException {
		Map params = pageContext.getRequest().getParameterMap();
		for (Object key : params.keySet()) {
			if ("page".equals(key) || "rows".equals(key)){
				continue;
			}
			Object value = params.get(key);
			if (value == null){
				continue;
			}
			if (value.getClass().isArray()) {
				url = append(url, key.toString(), ((String[]) value)[0]);
			} else if (value instanceof String) {
				url = append(url, key.toString(), value.toString());
			}
		}
		return url;
	}
	public String getBean() {
		return bean;
	}
	public void setBean(String bean) {
		this.bean = bean;
	}
	public String getUrl() {
		return url;
	}
	public void setUrl(String url) {
		this.url = url;
	}
	public void setNumber(int number) {
		this.number = number;
	}
}    


@Controller
public class DisplayController {

    @Autowired
    private IClzService clzService;

    @Autowired
    private IStudyService studyService;

    @Autowired
    private IAdminService adminService;

     //功能描述:前台首页
    @RequestMapping("/index")
    public String displayAll(HttpServletRequest req) {

        List<Course> clzs = clzService.getAllClz();
        req.getSession().setAttribute("clzs", clzs);
        return "index";
    }

    //课程详情

    @RequestMapping("/showDetail")
    public String showDetail(@RequestParam String id, HttpServletRequest req) {
        Course course = clzService.getClzById(Integer.parseInt(id));
        req.getSession().setAttribute("course", course);
        return "WEB-INF/pages/course/detail";
    }

        try {
            req.setCharacterEncoding("utf-8");

            Course course = new Course();
            if(!file.isEmpty()){
		    	ServletContext sc = req.getSession().getServletContext();
		        String dir = sc.getRealPath("/upload/imgurl/"+year_moth+"");    //设定文件保存的目录
		        String filename = file.getOriginalFilename();    //得到上传时的文件名
		        String tempfilename = Tools.getRndFilename()+Tools.getFileExtName(filename);          
		      			
				try {
					FileUtils.writeByteArrayToFile(new File(dir,tempfilename), file.getBytes());
				} catch (IOException e) {
					
					e.printStackTrace();
				}
				course.setImgurl("/upload/imgurl/"+year_moth+"/"+tempfilename); //设置图片所在路径
		        
		    }
            course.setName(req.getParameter("name"));
            course.setSelected(0);
            course.setAmount(Integer.parseInt(req.getParameter("amount")));
            course.setBelong(req.getParameter("belong"));
            course.setCredit(Integer.parseInt(req.getParameter("credit")));
            course.setPlace(req.getParameter("place"));
            course.setDetail(req.getParameter("detail"));
            course.setTime(req.getParameter("time"));
            if (adminService.addCourse(course)) {
                msg = "添加成功";
            } else {
                msg = "添加失败";
            }
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        } catch (Exception e) {
            msg = "添加失败";
        } finally {
            req.getSession().setAttribute("msg", msg);
            return "redirect:/courseManage";
        }
    }

    @RequestMapping("adminDelCourse")
    public String delCourse(@RequestParam String id, HttpServletRequest req) {
        adminService.delCourse(Integer.parseInt(id));
        req.getSession().setAttribute("msg", "删除成功");
        return "redirect:/courseManage";
    }

    	Page<Course> courses = clzService.getAllPageClz(page,rows);
        req.getSession().setAttribute("courses", courses.getRows());
        //req.getSession().setAttribute("page", courses);
        model.addAttribute("page", courses);
        return "WEB-INF/pages/course/clzList";
    }

    //分页获取我的选课列表
    @RequestMapping("/showMyClasses")
    public String showMyClzs(@RequestParam(defaultValue="1")Integer page, 
			@RequestParam(defaultValue="5")Integer rows,HttpServletRequest req,Model model) {
        String id = (String) req.getSession().getAttribute("userId");
        Page<StudyInfo> studyInfos=null;
        if(id!=null){
            studyInfos = studyService.getAllClzByStuId(id,page,rows);
            req.getSession().setAttribute("clzs", studyInfos.getRows());
            model.addAttribute("page", studyInfos);
        }else{
        	req.getSession().setAttribute("clzs", null);
        }
        
        return "WEB-INF/pages/course/myClzs";
    }

     //学生管理,分页获取学生列表
    @RequestMapping("/studentManage")
    public String studentManage(@RequestParam(defaultValue="1")Integer page, 
			@RequestParam(defaultValue="5")Integer rows,HttpServletRequest req,Model model){
        if(req.getSession().getAttribute("id")==null){
            return "adminLogin";
        }
        Page<Student> students=adminService.getAllStudents(page,rows);
        req.getSession().setAttribute("students", students.getRows());
        model.addAttribute("page", students);
        return "WEB-INF/pages/student/allStudents";
    }

    //后台课程管理
    @RequestMapping("/courseManage")
    public String courseManage(@RequestParam(defaultValue="1")Integer page, 
			@RequestParam(defaultValue="5")Integer rows,HttpServletRequest req,Model model){
        if(req.getSession().getAttribute("id")==null){
            return "adminLogin";
        }
        Page<Course> courses=adminService.getPageAllCourses(page,rows);
        req.getSession().setAttribute("courses", courses.getRows());
        model.addAttribute("page", courses);
        return "WEB-INF/pages/course/allCourses";
    }

	 */
	private String bean = "page";
	/**
	 * 分页跳转的url地址,此属性必须
	 */
	private String url = null;
	/**
	 * 显示页码数量
	 */
	private int number = 5;

	@Override
	public int doStartTag() throws JspException {
		JspWriter writer = pageContext.getOut();
		HttpServletRequest request = 
				(HttpServletRequest) pageContext.getRequest();
		Page page = (Page) request.getAttribute(bean);
		if (page == null)
			return SKIP_BODY;
		url = resolveUrl(url, pageContext);
		try {
			// 计算总页数
			int pageCount = page.getTotal() / page.getSize();
			if (page.getTotal() % page.getSize() > 0) {
				pageCount++;
			}
			writer.print("<nav><ul class=\"pagination\">");
			//首页链接路径
			String homeUrl = append(url, "page", 1);
			//末页链接路径
			String backUrl = append(url, "page", pageCount);
			// 显示“上一页”按钮
			if (page.getPage() > 1) {
				String preUrl = append(url, "page", page.getPage() - 1);
				preUrl = append(preUrl, "rows", page.getSize());
		writer.print("<li><a href=\"" + homeUrl + "\">" + "首页</a></li>");
		writer.print("<li><a href=\"" + preUrl + "\">" + "上一页</a></li>");
			} else {
writer.print("<li class=\"disabled\"><a href=\"#\">" + "首页 </a></li>");
writer.print("<li class=\"disabled\"><a href=\"#\">" + "上一页 </a></li>");
			}
			// 显示当前页码的前2页码和后两页码
			// 若1 则 1 2 3 4 5, 若2 则 1 2 3 4 5, 若3 则1 2 3 4 5,
			// 若4 则 2 3 4 5 6 ,若10 则 8 9 10 11 12
			int indexPage =1;
			if(page.getPage() - 4 <=0){
				indexPage=1;
        if (rst==0) {
            msg = "选课成功!";
        } else if(rst==1){
            msg = "已经选过此课!";
        } else if(rst==2){
            msg="该课程已选满!";
        }else{
            msg="未知错误!";
        }
        req.getSession().setAttribute("msg", msg);
        return "WEB-INF/pages/course/detail";
    }

    @RequestMapping("/delCourse")
    public synchronized String delClz(HttpServletRequest req){
        try {
            String stuId = (String) req.getSession().getAttribute("userId");
            Integer clzId =Integer.parseInt(req.getParameter("id"));

            studyService.delCourse(stuId,clzId);
            Course c=clzService.getClzById(clzId);
            c.setSelected(c.getSelected()-1);

            clzService.update(c);

        }catch (NumberFormatException e){
            e.printStackTrace();
            return "404";
        }
        req.getSession().setAttribute("msg","删除成功!");
        return "redirect:/showMyClasses";
    }

}

请添加图片描述

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值