SpringMVC实战--构建学生管理系统(13)
首页部分学生管理页面(添加头像(图像)功能)制作 在上篇博客基础上继续开发
(源代码见仓库:https://gitee.com/jianghao233/course)
已经完成了保存图片到真实路径,并解决了图片重名问题,但核心问题:将图片保存到数据库中并显示在页面上任未实现
修改代码: 修改 StudentController.java
package com.neuedu.controller;
import java.io.File;
import java.io.IOException;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;
import com.neuedu.po.TbClass;
import com.neuedu.po.TbStudent;
import com.neuedu.service.ClassService;
import com.neuedu.service.StudentService;
import com.neuedu.utils.UploadUtils;
import com.neuedu.vo.StudentVO;
import oracle.net.aso.s;
@Controller
@RequestMapping("/student")
public class StudentController {
@Autowired
private ClassService classService;
@Autowired
private StudentService studentService;
@RequestMapping({"/","/list"})
//查询所有学生信息
public String list(Model model) {
List<StudentVO> list = studentService.getList();
List<TbClass> classes = classService.getList();
model.addAttribute("list",list);
model.addAttribute("classes",classes);
return "admin/studentManager";
}
@RequestMapping("/save")
public String save(TbStudent tbStudent,HttpServletRequest request,@RequestParam("fileurl") MultipartFile multipartFile) throws Exception {
String oldname = multipartFile.getOriginalFilename();
/*为避免重名带来的图片覆盖问题,修改保存图片的名字 */
/*1.去掉文件名中的路径信息*/
String realName = UploadUtils.getRealName(oldname);
/*2.获取一个UUID的名字*/
String uuidName = UploadUtils.getUUIDName(realName);
System.out.println(uuidName);
/*获取真实路径*/
String basePath = request.getRealPath("/static/upload");
String dir = UploadUtils.getDir();
File filedir = new File(basePath + dir);
if(!filedir.exists()) {
filedir.mkdirs();
}
/*创建 file 对象,以 basePath 作为目录,以 uuidName 作为文件名,但这是虚拟的,只存在于内存中*/
File file = new File(filedir,uuidName);
/*将上传来的图片写入到 file 虚拟路径中*/
multipartFile.transferTo(file);
String picurl = "/static/upload" + dir + "/" + uuidName; //修改代码
tbStudent.setPicurl(picurl);
studentService.save(tbStudent);
return "redirect:/student/";
}
@RequestMapping("/modify")
public String modify(TbStudent tbStudent) {
studentService.update(tbStudent);
return "redirect:/student/";
}
@RequestMapping("/delete")
public String delete(Integer stuid) {
studentService.delete(stuid);
return "redirect:/student/";
}
}
修改:StudentManager.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/static/css/common.css"/>
<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/static/cs