package com.liu.ssm.controller;
import java.io.File;
import java.io.IOException;
import java.util.Arrays;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.ModelAndView;
import com.liu.ssm.controller.service.ClazzService;
import com.liu.ssm.controller.service.StudentService;
import com.liu.ssm.entity.Clazz;
import com.liu.ssm.entity.Student;
import com.liu.ssm.page.Page;
import com.liu.ssm.util.StringUtil;
import net.sf.json.JSONArray;
/**
* 学生信息管理
* @author LHB
*
*/
@RequestMapping("/student")
@Controller
public class StudentController {
@Autowired
private StudentService studentService;
@Autowired
private ClazzService clazzService;
/**
* 学生列表页
* @param model
* @return
*/
@RequestMapping(value="/list",method=RequestMethod.GET)
public ModelAndView list(ModelAndView model){
model.setViewName("student/student_list");
List<Clazz> clazzList = clazzService.findAll();
model.addObject("clazzList",clazzList );
model.addObject("clazzListJson",JSONArray.fromObject(clazzList));
return model;
}
/**
* 获取学生列表
* @param name
* @param page
* @return
*/
@RequestMapping(value="/get_list",method=RequestMethod.POST)
@ResponseBody
public Map<String, Object> getList(
@RequestParam(value="name",required=false,defaultValue="") String name,
@RequestParam(value="clazzId",required=false) Long clazzId,
HttpServletRequest request,
Page page
){
Map<String, Object> ret = new HashMap<String, Object>();
Map<String, Object> queryMap = new HashMap<String, Object>();
queryMap.put("username", "%"+name+"%");
Object attribute = request.getSession().getAttribute("userType");
if("2".equals(attribute.toString())){
//说明是学生
Student loginedStudent = (Student)request.getSession().getAttribute("user");
queryMap.put("username", "%"+loginedStudent.getUsername()+"%");
}
if(clazzId != null){
queryMap.put("clazzId", clazzId);
}
queryMap.put("offset", page.getOffset());
queryMap.put("pageSize", page.getRows());
ret.put("rows", studentService.findList(queryMap));
ret.put("total", studentService.getTotal(queryMap));
return ret;
}
/**
* 编辑学生信息
* @param clazz
* @return
*/
@RequestMapping(value="/edit",method=RequestMethod.POST)
@ResponseBody
public Map<String, String> edit(Student student){
Map<String, String> ret = new HashMap<String, String>();
if(StringUtils.isEmpty(student.getUsername())){
ret.put("type", "error");
ret.put("msg", "学生姓名不能为空!");
return ret;
}
if(StringUtils.isEmpty(student.getPassword())){
ret.put("type", "error");
ret.put("msg", "学生登录密码不能为空!");
return ret;
}
if(student.getClazzId() == null){
ret.put("type", "error");
ret.put("msg", "请选择所属班级!");
return ret;
}
if(isExist(student.getUsername(), student.getId())){
ret.put("type", "error");
ret.put("msg", "该姓名已存在!");
return ret;
}
student.setSn(StringUtil.generateSn("S", ""));
if(studentService.edit(student) <= 0){
ret.put("type", "error");
ret.put("msg", "学生添加失败!");
return ret;
}
ret.put("type", "success");
ret.put("msg", "学生修改成功!");
return ret;
}
/**
* 添加学生信息
* @param student
* @return
*/
@RequestMapping(value="/add",method=RequestMethod.POST)
@ResponseBody
public Map<String, String> add(Student student){
Map<String, String> ret = new HashMap<String, String>();
if(StringUtils.isEmpty(student.getUsername())){
ret.put("type", "error");
ret.put("msg", "学生姓名不能为空!");
return ret;
}
if(StringUtils.isEmpty(student.getPassword())){
ret.put("type", "error");
ret.put("msg", "学生登录密码不能为空!");
return ret;
}
if(student.getClazzId() == null){
ret.put("type", "error");
ret.put("msg", "请选择所属班级!");
return ret;
}
if(isExist(student.getUsername(), null)){
ret.put("type", "error");
ret.put("msg", "该姓名已存在!");
return ret;
}
student.setSn(StringUtil.generateSn("S", ""));
if(studentService.add(student) <= 0){
ret.put("type", "error");
ret.put("msg", "学生添加失败!");
return ret;
}
ret.put("type", "success");
ret.put("msg", "学生添加成功!");
return ret;
}
/**
* 删除学生信息
* @param ids
* @return
*/
@RequestMapping(value="/delete",method=RequestMethod.POST)
@ResponseBody
public Map<String, String> delete(
@RequestParam(value="ids[]",required=true) Long[] ids
){
Map<String, String> ret = new HashMap<String, String>();
if(ids == null || ids.length == 0){
ret.put("type", "error");
ret.put("msg", "请选择要删除的数据!");
return ret;
}
try {
if(studentService.delete(StringUtil.joinString(Arrays.asList(ids), ",")) <= 0){
ret.put("type", "error");
ret.put("msg", "删除失败!");
return ret;
}
} catch (Exception e) {
// TODO: handle exception
ret.put("type", "error");
ret.put("msg", "该学生下存在其他信息,请勿冲动!");
return ret;
}
ret.put("type", "success");
ret.put("msg", "学生删除成功!");
return ret;
}
/**
* 上传用户头像图片
* @param photo
* @param request
* @param response
* @return
* @throws IOException
*/
@RequestMapping(value="/upload_photo",method=RequestMethod.POST)
@ResponseBody
public Map<String, String> uploadPhoto(MultipartFile photo,
HttpServletRequest request,
HttpServletResponse response
) throws IOException{
Map<String, String> ret = new HashMap<String, String>();
if(photo == null){
//文件没有选择
ret.put("type", "error");
ret.put("msg", "请选择文件!");
return ret;
}
if(photo.getSize() > 10485760){
//文件没有选择
ret.put("type", "error");
ret.put("msg", "文件大小超过10M,请上传小于10M的图片!");
return ret;
}
String suffix = photo.getOriginalFilename().substring(photo.getOriginalFilename().lastIndexOf(".") + 1,photo.getOriginalFilename().length());
if(!"jpg,png,gif,jpeg".contains(suffix.toLowerCase())){
ret.put("type", "error");
ret.put("msg", "文件格式不正确,请上传jpg,png,gif,jpeg格式的图片!");
return ret;
}
String savePath = request.getServletContext().getRealPath("/") + "\\upload\\";
System.out.println(savePath);
File savePathFile = new File(savePath);
if(!savePathFile.exists()){
savePathFile.mkdir();//如果不存在,则创建一个文件夹upload
}
//把文件转存到这个文件夹下
String filename = new Date().getTime() + "." + suffix;
photo.transferTo(new File(savePath + filename ));
ret.put("type", "success");
ret.put("msg", "图片上传成功!");
ret.put("src", request.getServletContext().getContextPath() + "/upload/" + filename);
return ret;
}
private boolean isExist(String username,Long id){
Student student = studentService.findByUserName(username);
if(student != null){
if(id == null){
return true;
}
if(student.getId().longValue() != id.longValue()){
return true;
}
}
return false;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
ssm框架+mysql+jsp学生信息管理系统 技术栈:spring,springmvc,mybatis,mysql,jsp,jquery,easyui 一、项目简介 本项目是一套基于ssm+mysql实现的学生信息管理系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Java学习者。 包含:项目源码、项目文档、数据库脚本、软件工具等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试,确保可以运行! 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值 二、技术实现 技术栈:spring,springmvc,mybatis,mysql,jsp,jquery,easyui 三、系统功能 本系统分为三个角色: 学生、管理员两种角色 功能: 管理员角色,可以进行管理信息的增删改查操作 1、用户信息管理:用户信息的增加删除修改查询 2、年级信息管理:年级信息的增加删除修改查询 3、班级信息管理:班级信息的增加删除修改查询 4、学生信息管理:学生信息的增加删除修改查询 学生角色,可以对年级信息,班级信息进行查询,对学生信息进行修
资源详情
资源评论
资源推荐
收起资源包目录
基于ssm+mysql实现的学生信息管理系统【内含数据库+附源码】 (307个子文件)
StudentController.class 9KB
CpachaUtil.class 7KB
ClazzController.class 6KB
SystemController.class 5KB
UserController.class 5KB
GradeController.class 5KB
LoginInterceptor.class 3KB
StudentServiceImpl.class 2KB
Student.class 2KB
ClazzServiceimpl.class 2KB
GradeServiceimpl.class 2KB
UserServiceimpl.class 2KB
StringUtil.class 2KB
Clazz.class 1KB
User.class 1KB
Grade.class 1KB
Page.class 954B
StudentService.class 787B
StudentDao.class 767B
GradeDao.class 681B
UserDao.class 654B
GradeService.class 618B
ClazzService.class 618B
ClazzDao.class 595B
UserService.class 591B
.classpath 771B
org.eclipse.wst.common.component 474B
org.eclipse.wst.jsdt.ui.superType.container 49B
H-ui.css 139KB
H-ui.min.css 99KB
easyui.css 54KB
iconfont.css 12KB
icheck.css 12KB
tabs.css 9KB
datagrid.css 5KB
icon.css 4KB
linkbutton.css 4KB
color.css 4KB
calendar.css 4KB
tree.css 3KB
panel.css 3KB
default.css 2KB
menu.css 2KB
window.css 2KB
tooltip.css 2KB
menubutton.css 2KB
searchbox.css 2KB
datalist.css 2KB
textbox.css 2KB
H-ui.login.css 2KB
layout.css 2KB
slider.css 2KB
spinner.css 1KB
pagination.css 1KB
skin.css 1KB
combo.css 1KB
accordion.css 838B
messager.css 804B
propertygrid.css 716B
progressbar.css 653B
datebox.css 619B
dialog.css 560B
combobox.css 396B
filebox.css 306B
splitbutton.css 293B
demo.css 285B
numberbox.css 128B
validatebox.css 94B
Thumbs.db 56KB
Thumbs.db 18KB
Thumbs.db 13KB
Thumbs.db 4KB
iconfont.eot 92KB
loading.gif 8KB
loading_072.gif 4KB
loading.gif 2KB
hamburger-retina.gif 1KB
hamburger.gif 1KB
us.gif 367B
cn.gif 366B
blank.gif 43B
blank.gif 43B
demo.html 43KB
aspectjweaver-1.8.9.jar 1.78MB
mybatis-3.4.4.jar 1.53MB
jackson-databind-2.8.9.jar 1.18MB
spring-context-4.3.9.RELEASE.jar 1.09MB
spring-core-4.3.9.RELEASE.jar 1.07MB
spring-webmvc-4.3.9.RELEASE.jar 894KB
spring-web-4.3.9.RELEASE.jar 801KB
mysql-connector-java-5.1.18-bin.jar 771KB
spring-beans-4.3.9.RELEASE.jar 745KB
c3p0-0.9.1.jar 594KB
spring-test-4.3.9.RELEASE.jar 586KB
commons-collections-3.2.jar 558KB
mybatis-generator-core-1.3.5.jar 543KB
spring-jdbc-4.3.9.RELEASE.jar 418KB
jstl-1.2.jar 405KB
spring-aop-4.3.9.RELEASE.jar 372KB
jsqlparser-1.0.jar 356KB
共 307 条
- 1
- 2
- 3
- 4
飞翔的佩奇
- 粉丝: 3500
- 资源: 728
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Python大作业:音乐播放软件(爬虫+可视化+数据分析+数据库)
- 课程设计-python爬虫-爬取日报,爬取日报文章后存储到本地,附带源代码+课程设计报告
- 软件和信息技术服务行业投资与前景预测.pptx
- 课程设计-基于SpringBoot + Mybatis+python爬虫NBA球员数据爬取可视化+源代码+文档+sql+效果图
- 软件品质管理系列二项目策划规范.doc
- 基于TensorFlow+PyQt+GUI的酒店评论情感分析,支持分析本地数据文件和网络爬取数据分析+源代码+文档说明+安装教程
- 软件定义无线电中的模拟电路测试技术.pptx
- 软件开发协议(作为技术开发合同附件).doc
- 软件开发和咨询行业技术趋势分析.pptx
- 软件测试题详解及答案.doc
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论9