教师课程管理系统 - 功能实现细节

该系统基于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 list = courseService.findByTeacherID(Integer.parseInt(username)); ModelAndView mv = new ModelAndView(); mv.addObject('courseList', list); mv.setViewName('teacher/showCourse'); return mv;}

2. 展示所有课程模块

功能描述: 分页展示所有课程信息。

实现细节:

  • 使用 @RequestMapping 注解将请求映射到 showCourse 方法。- 获取页面请求参数 pagepageSize。- 使用 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 list = courseService.findByPaging(page, pageSize); PageInfo CoursePageInfo = new PageInfo(list); ModelAndView mv = new ModelAndView(); mv.addObject('CoursePageInfo', CoursePageInfo); mv.setViewName('student/showCourse'); return mv;}

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 list = courseService.findByName(findCourseByName, page, pageSize); PageInfo searchCourseInfo = new PageInfo(list); ModelAndView mv = new ModelAndView(); mv.addObject('searchCourseInfo', searchCourseInfo); mv.setViewName('student/searchCourse'); return mv;}

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 list = studentCustom.getSelectedCourseList(); model.addAttribute('selectedCourseList', list); return 'student/selectCourse';}

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 list = studentCustom.getSelectedCourseList(); model.addAttribute('selectedCourseList', list); return 'student/overCourse';

教师课程管理系统:课程展示、选课、退课、已修课程等功能实现

原文地址: https://www.cveoy.top/t/topic/oMyD 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录