教师课程管理系统:课程展示、选课、退课、已修课程等功能实现
教师课程管理系统 - 功能实现细节
该系统基于Spring MVC框架实现,主要功能包括:显示我的课程、展示所有课程、搜索课程、选课、退课、已选课程、已修课程。
1. 显示我的课程模块
功能描述: 显示当前登录教师所教授的所有课程。
实现细节:
- 使用
@RequestMapping注解将请求映射到stuCourseShow方法。- 通过SecurityUtils.getSubject()获取当前登录用户的信息,并获取用户名。- 使用courseService.findByTeacherID方法查询指定教师的课程信息。- 使用ModelAndView对象将课程信息封装到courseList属性中,并设置页面视图为teacher/showCourse。
**代码示例:**java@RequestMapping(value = '/showCourse')public ModelAndView stuCourseShow() throws Exception { Subject subject = SecurityUtils.getSubject(); String username = (String) subject.getPrincipal(); List
2. 展示所有课程模块
功能描述: 分页展示所有课程信息。
实现细节:
- 使用
@RequestMapping注解将请求映射到showCourse方法。- 获取页面请求参数page和pageSize。- 使用courseService.findByPaging方法分页查询所有课程信息。- 使用PageInfo对象封装查询结果,并将其放入ModelAndView对象中,设置页面视图为student/showCourse。
**代码示例:**java@RequestMapping(value = '/showCourse')public ModelAndView showCourse(@RequestParam(value = 'page', required = true, defaultValue = '1') Integer page, @RequestParam(value = 'pageSize', required = true, defaultValue = '4') Integer pageSize) throws Exception { List
3. 搜索课程模块
功能描述: 根据课程名称搜索课程信息。
实现细节:
- 使用 AJAX 将查询的课程名称存入 Session 中。- 使用
@RequestMapping注解将请求映射到searchCourse方法。- 从 Session 中获取查询的课程名称。- 使用courseService.findByName方法查询指定课程名称的课程信息。- 使用PageInfo对象封装查询结果,并将其放入ModelAndView对象中,设置页面视图为student/searchCourse。
**代码示例:**java@RequestMapping('/searchCourseName')public void searchCourseName(@RequestBody Student student, HttpServletRequest request) { String username = student.getUsername(); request.getSession().setAttribute('findCourseByName', username);}
@RequestMapping(value = '/searchCourse')public ModelAndView searchCourse(HttpServletRequest request, @RequestParam(value = 'page', required = true, defaultValue = '1') Integer page, @RequestParam(value = 'pageSize', required = true, defaultValue = '4') Integer pageSize) throws Exception { String findCourseByName = (String) request.getSession().getAttribute('findCourseByName'); List
4. 选课操作模块
功能描述: 学生选课操作。
实现细节:
- 使用
@RequestMapping注解将请求映射到stuSelectedCourse方法。- 获取当前登录用户的信息和课程 ID。- 使用SelectedCourseCustom对象封装选课信息。- 使用selectedCourseService.findOne方法查询该学生是否已选该门课程。- 如果未选,则使用selectedCourseService.save方法保存选课信息。- 如果已选,则抛出CustomException异常。
**代码示例:**java@RequestMapping(value = '/stuSelectedCourse')public String stuSelectedCourse(int id) throws Exception { Subject subject = SecurityUtils.getSubject(); String username = (String) subject.getPrincipal(); SelectedCourseCustom selectedCourseCustom = new SelectedCourseCustom(); selectedCourseCustom.setCourseid(id); selectedCourseCustom.setStudentid(Integer.parseInt(username)); SelectedCourseCustom s = selectedCourseService.findOne(selectedCourseCustom); if (s == null) { selectedCourseService.save(selectedCourseCustom); } else { throw new CustomException('该门课程你已经选了,不能再选'); } return 'redirect:/student/selectedCourse';}
5. 退课操作模块
功能描述: 学生退课操作。
实现细节:
- 使用
@RequestMapping注解将请求映射到outCourse方法。- 获取当前登录用户的信息和课程 ID。- 使用SelectedCourseCustom对象封装退课信息。- 使用selectedCourseService.remove方法删除选课信息。
**代码示例:**java@RequestMapping(value = '/outCourse')public String outCourse(int id) throws Exception { Subject subject = SecurityUtils.getSubject(); String username = (String) subject.getPrincipal(); SelectedCourseCustom selectedCourseCustom = new SelectedCourseCustom(); selectedCourseCustom.setCourseid(id); selectedCourseCustom.setStudentid(Integer.parseInt(username)); selectedCourseService.remove(selectedCourseCustom); return 'redirect:/student/selectedCourse';}
6. 已选课程模块
功能描述: 显示学生已选的课程信息。
实现细节:
- 使用
@RequestMapping注解将请求映射到selectedCourse方法。- 获取当前登录用户的信息。- 使用studentService.findStudentAndSelectCourseListByName方法查询指定学生的已选课程信息。- 使用Model对象将已选课程信息封装到selectedCourseList属性中,并设置页面视图为student/selectCourse。
**代码示例:**java@RequestMapping(value = '/selectedCourse')public String selectedCourse(Model model) throws Exception { Subject subject = SecurityUtils.getSubject(); StudentCustom studentCustom = studentService.findStudentAndSelectCourseListByName((String) subject.getPrincipal()); List
7. 已修课程模块
功能描述: 显示学生已修的课程信息。
实现细节:
- 使用
@RequestMapping注解将请求映射到overCourse方法。- 获取当前登录用户的信息。- 使用studentService.findStudentAndSelectCourseListByName方法查询指定学生的已修课程信息。- 使用Model对象将已修课程信息封装到selectedCourseList属性中,并设置页面视图为student/overCourse。
**代码示例:**java@RequestMapping(value = '/overCourse')public String overCourse(Model model) throws Exception { Subject subject = SecurityUtils.getSubject(); StudentCustom studentCustom = studentService.findStudentAndSelectCourseListByName((String) subject.getPrincipal()); List
原文地址: https://www.cveoy.top/t/topic/oMyD 著作权归作者所有。请勿转载和采集!