package com.bike.web;

import com.bike.dto.JsonResult;
import com.bike.dto.Page;
import com.bike.pojo.Student;
import com.bike.service.StudentService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;

/**
 * 学生管理控制器,处理与学生相关的请求
 */
@Controller
@RequestMapping('/student')
public class StudentController {

    @Autowired
    private StudentService studentService;

    /**
     * 跳转到学生管理页面
     * @return 学生管理页面路径
     */
    @RequestMapping('/studentManage')
    public String studentManage(){
        return 'student';
    }

    /**
     * 添加或更新学生信息
     * @param studentIcon 学生头像图片
     * @param student 学生信息
     * @param request HTTP请求
     * @return 操作结果JSON数据
     */
    @RequestMapping(value = '/addOrUpdate', method = RequestMethod.POST)
    @ResponseBody
    public JsonResult addOrUpdate(MultipartFile studentIcon, Student student, HttpServletRequest request) {
        if (student.getSid() == null || ''.equals(student.getSid())) {
            return studentService.add(studentIcon, student, request);
        } else {
            return studentService.update(studentIcon, student, request);
        }
    }

    /**
     * 获取所有学生信息(分页)
     * @param page 当前页码
     * @param rows 每页显示条数
     * @return 学生信息分页数据
     */
    @RequestMapping('/showAll')
    @ResponseBody
    public Page<Student> showAll(Integer page, Integer rows) {
        return studentService.findAllToPage(page, rows);
    }

    /**
     * 删除学生信息
     * @param sid 学生ID
     * @return 操作结果JSON数据
     */
    @RequestMapping(value = '/remove', method = RequestMethod.POST)
    @ResponseBody
    public JsonResult remove(Integer sid) {
        return studentService.removeById(sid);
    }

    /**
     * 根据ID获取学生信息,用于回显表单数据
     * @param sid 学生ID
     * @return 学生信息
     */
    @RequestMapping('/loadForm')
    @ResponseBody
    public Student loadForm(Integer sid) {
        return studentService.findById(sid);
    }
}

代码分析:

这段代码定义了一个名为 StudentController 的控制器类,用于处理与学生相关的HTTP请求。

核心代码分析:

  • addOrUpdate 方法: 处理学生信息的添加和更新操作。
    • 通过判断 student.getSid() 是否为空来区分添加或更新操作。
    • 调用 studentService.add()studentService.update() 方法执行数据库操作。
  • remove 方法: 处理学生信息的删除操作。
    • 接收学生ID作为参数。
    • 调用 studentService.removeById() 方法执行删除操作。
  • loadForm 方法: 根据ID获取学生信息,用于回显表单数据。
    • 接收学生ID作为参数。
    • 调用 studentService.findById() 方法获取学生信息。

用法流程:

  1. 添加学生: 发送POST请求到 /student/addOrUpdate 路径,传递学生信息和头像图片。
  2. 更新学生: 发送POST请求到 /student/addOrUpdate 路径,传递更新后的学生信息和头像图片。
  3. 删除学生: 发送POST请求到 /student/remove 路径,传递要删除的学生ID。
  4. 回显学生数据: 发送GET请求到 /student/loadForm 路径,传递要回显的学生ID。

注意:

  • 这段代码仅提供核心功能示例,实际应用中需要根据具体需求进行修改和扩展。
  • 需要配合前端页面、数据库操作等部分才能实现完整的学生管理功能。
Spring MVC学生管理:高效增删改查接口实现

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

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