作者主页:夜未央5788
简介:Java领域优质创作者、Java项目、学习资料、技术互助
文末获取源码
项目介绍
本项目分为三种角色:系统管理员、楼宇管理员、学生;
系统管理员主要功能如下:
楼宇管理员管理、学生管理、楼宇管理、宿舍管理、学生入住登记、学生寝室调换、学生迁出登记、学生缺勤记录、修改密码、退出登录
楼宇管理员主要功能如下:
学生管理、学生入住登记、学生寝室调换、学生迁出登记、学生缺寝登记、学生缺寝记录、修改密码、退出登录
学生主要功能如下:
首页、修改密码、我的缺勤记录、退出登录;
环境需要
1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可
4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;
5.数据库:MySql 5.7版本;
6.是否Maven项目:否;
技术栈
1. 后端:Spring+hibernate+Struts 2
2. 前端:JSP+HTML+CSS+JavaScript+jQuery
使用说明
1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;
若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行;
3. 将项目中applicationContext.xml配置文件中的数据库配置改为自己的配置;
4. 运行项目,在浏览器中输入http://localhost:8080/ 登录
系统管理员用户名/密码:admin/admin
楼宇管理员用户名/密码:101/123456
学生用户名/密码:2021001/123456
运行截图
相关代码
AbsenteeRecordAction
package org.besteam.web.action;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.apache.struts2.ServletActionContext;
import org.besteam.daoimpl.PageBean;
import org.besteam.domain.AbsenteeRecord;
import org.besteam.domain.Dormitory;
import org.besteam.domain.User;
import org.besteam.service.AbsenteeRecordService;
import org.besteam.service.BuildingService;
import org.besteam.service.DormitoryService;
import org.besteam.service.UserService;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
import com.opensymphony.xwork2.util.ValueStack;
public class AbsenteeRecordAction extends ActionSupport implements ModelDriven<AbsenteeRecord>{
private static final long serialVersionUID = -5940812028614640249L;
private AbsenteeRecord absenteeRecord = new AbsenteeRecord();
@Override
public AbsenteeRecord getModel() {
// TODO Auto-generated method stub
return absenteeRecord;
}
//注入service
private AbsenteeRecordService absenteeRecordService;
public void setAbsenteeRecordService(AbsenteeRecordService absenteeRecordService) {
this.absenteeRecordService = absenteeRecordService;
}
private UserService userService;
public void setUserService(UserService userService) {
this.userService = userService;
}
private BuildingService buildingService;
public void setBuildingService(BuildingService buildingService) {
this.buildingService = buildingService;
}
private DormitoryService dormitoryService;
public void setDormitoryService(DormitoryService dormitoryService) {
this.dormitoryService = dormitoryService;
}
/**
* 缺勤记录登记界面
* @return
*/
public String recordUI() {
//当前
User existUser = (User) ServletActionContext.getRequest().getSession().getAttribute("existUser");
return "record";
}
private Long building_id;
public void setBuilding_id(Long building_id) {
this.building_id = building_id;
}
private String userCode;
public void setUserCode(String userCode) {
this.userCode = userCode;
}
/**
* 缺勤登记
* @return
*/
public String record() {
User user = userService.findByUserCode(userCode);
if(user==null) {//没有此学生
ServletActionContext.getRequest().setAttribute("isrecord", "学号输入有误!");
return "record";
}
if(user.getIdentity()!=0) {//不是学生
ServletActionContext.getRequest().setAttribute("isrecord", "学号输入有误!");
return "record";
}
if(user.getCheck_in()!=1) {
ServletActionContext.getRequest().setAttribute("isrecord", "该生未入住!");
return "record";
}
if(user.getBuilding_id()!=building_id) {
ServletActionContext.getRequest().setAttribute("isrecord", "请输入本栋楼宇学生学号!");
return "record";
}
ServletActionContext.getRequest().setAttribute("recordUser", user);
//学生所在楼宇
return "addRecord";
}
public String addrec() throws ParseException {
Long user_id = absenteeRecord.getUser().getUser_id();
User findById = userService.findById(user_id);
absenteeRecord.setUser(findById);
Date date = new Date();//获得系统时间.
SimpleDateFormat sdf = new SimpleDateFormat( " yyyy-MM-dd HH:mm:ss " );
String nowTime = sdf.format(date);
Date time = sdf.parse( nowTime );
absenteeRecord.setAbsentee_date(time);
absenteeRecordService.save(absenteeRecord);
ServletActionContext.getRequest().setAttribute("isrecord", "登记成功!");
return "record";
}
private Integer pageCode;
public void setPageCode(Integer pageCode) {
this.pageCode = pageCode;
}
private String dro_name;
public void setDro_name(String dro_name) {
this.dro_name = dro_name;
}
public String getDro_name() {
return dro_name;
}
private String uc;
public void setUc(String uc) {
this.uc = uc;
}
public String findAbsUI() {
if(pageCode == null) {
pageCode = 1;
}
ServletActionContext.getRequest().setAttribute("uc", uc);
PageBean<AbsenteeRecord> absPage = null;
Long dormitory_id = null;
if(dro_name!=null&&!dro_name.trim().equals("")) {
//宿舍名称
Dormitory dormitory = dormitoryService.findByDorName(dro_name);
ServletActionContext.getRequest().setAttribute("dro", dro_name);
if(dormitory!=null) {
dormitory_id = dormitory.getDormitory_id();
}else {
dormitory_id = 0L;
}
}
User us = new User();
us.setUser_id(0L);
if(uc!=null&&!uc.trim().equals("")) {
User findByUserCode = userService.findByUserCode(uc);
if(findByUserCode==null) {
findByUserCode = us;
}
absenteeRecord.setUser(findByUserCode);
}
User currUser = (User) ServletActionContext.getRequest().getSession().getAttribute("existUser");
if(currUser.getIdentity()==2) {//系统管理员
if(dormitory_id!=null) {
absenteeRecord.setDorId(dormitory_id);
}
absPage = absenteeRecordService.findByPage(absenteeRecord, pageCode);
}else {//楼宇管理员
if(dormitory_id!=null) {
absenteeRecord.setDorId(dormitory_id);
}
absenteeRecord.setBuildingId(currUser.getBuilding_id());
absPage = absenteeRecordService.findByPage(absenteeRecord, pageCode);
}
ValueStack vs = ActionContext.getContext().getValueStack();
vs.set("absPage", absPage);
return "abs";
}
/**
* 查看个人缺勤记录
* @return
*/
public String showMe() {
if(pageCode==null) {
pageCode = 1;
}
User me = (User) ServletActionContext.getRequest().getSession().getAttribute("existUser");
absenteeRecord.setUser(me);
PageBean<AbsenteeRecord> absPage = absenteeRecordService.findByPage(absenteeRecord, pageCode);
ValueStack vs = ActionContext.getContext().getValueStack();
vs.set("absPage", absPage);
return "showMe";
}
}
BuildingAction
package org.besteam.web.action;
import org.apache.struts2.ServletActionContext;
import org.besteam.daoimpl.PageBean;
import org.besteam.domain.Building;
import org.besteam.domain.User;
import org.besteam.service.BuildingService;
import org.besteam.service.UserService;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
import com.opensymphony.xwork2.util.ValueStack;
/**
* 楼宇action
* @author checkz520
*
*/
public class BuildingAction extends ActionSupport implements ModelDriven<Building>{
private static final long serialVersionUID = 4300789626596360064L;
//注入模型驱动
private Building building = new Building();
public Building getModel() {
return building;
}
private UserService userService;
public void setUserService(UserService userService) {
this.userService = userService;
}
private BuildingService buildingService;
public void setBuildingService(BuildingService buildingService) {
this.buildingService = buildingService;
}
//注入pageCode
private Integer pageCode;
public void setPageCode(Integer pageCode) {
this.pageCode = pageCode;
}
//查询所有楼宇信息
public String findByPageUI() {
if(pageCode == null) {
this.pageCode = 1;
}
PageBean<Building> bList = buildingService.findByPage(building, pageCode);
ValueStack vs = ActionContext.getContext().getValueStack();
vs.set("bList", bList);
return "bListPage";
}
/**
* 修改楼宇信息
*/
public String updateBuildingUI() {
//查询当前楼宇信息
Building updateBuilding = buildingService.findBuildingInfo(building.getBuilding_id());
//将当前楼宇信息放入值栈中
ValueStack vs = ActionContext.getContext().getValueStack();
vs.set("updateBuilding", updateBuilding);
//转发到修改楼宇信息页面中
return "updateBuilding";
}
/**
* 添加或修改当前的楼宇的管理员
*/
public String addBuildingAdminUI() {
Building updateBudInfo = buildingService.findBuildingInfo(building.getBuilding_id());
User u = new User();
u.setBuilding_id(0L);
u.setIdentity(1);
PageBean<User> uPage = userService.findByPage(u, 1);
ValueStack vs = ActionContext.getContext().getValueStack();
vs.set("uPage", uPage);
vs.set("bInfo", updateBudInfo);
return "addBuildingAdmin";
}
//注入以前的管理员的id
private Long oldId;
public void setOldId(Long oldId) {
this.oldId = oldId;
}
public String updateBInfo() {
//将老管理员的楼宇信息置为0
if(oldId!=null) {
userService.deleteAndChangeAdminInfo(oldId, 0L);
}
//新楼宇和管理员信息
User newUser = new User();
newUser.setBuilding_id(building.getBuilding_id());
newUser.setUser_id(building.getUser_id());
buildingService.addAndChangeAdmingInfo(newUser);
//louyu
userService.deleteAndChangeAdminInfo(building.getUser_id(), building.getBuilding_id());
ServletActionContext.getRequest().setAttribute("success", "操作成功!");
return "pageui";
}
/**
* 跳转到添加楼宇界面
* @return
*/
public String addBuildingUI() {
return "addBuilding";
}
/**
* 添加楼宇
*/
public String addBuilding() {
buildingService.add(building);
return "bListPage";
}
}
DormitoryAction
package org.besteam.web.action;
import org.besteam.daoimpl.PageBean;
import org.besteam.domain.Building;
import org.besteam.domain.Dormitory;
import org.besteam.service.BuildingService;
import org.besteam.service.DormitoryService;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
import com.opensymphony.xwork2.util.ValueStack;
/**
* 宿舍action
*
* @author checkz520
*
*/
public class DormitoryAction extends ActionSupport implements ModelDriven<Dormitory> {
private static final long serialVersionUID = 9205366981981150538L;
private Dormitory dormitory = new Dormitory();
public Dormitory getModel() {
if(dormitory==null) {
dormitory = new Dormitory();
}
return dormitory;
}
private DormitoryService dormitoryService;
public void setDormitoryService(DormitoryService dormitoryService) {
this.dormitoryService = dormitoryService;
}
private BuildingService buildingService;
public void setBuildingService(BuildingService buildingService) {
this.buildingService = buildingService;
}
// 注入pageCode
private Integer pageCode;
public void setPageCode(Integer pageCode) {
this.pageCode = pageCode;
}
/**
* 查询所有宿舍
* @return
*/
public String findByPageUI() {
if (pageCode == null) {
this.pageCode = 1;
}
PageBean<Dormitory> bList = dormitoryService.findByPage(dormitory, pageCode);
ValueStack vs = ActionContext.getContext().getValueStack();
vs.set("dList", bList);
return "dListPage";
}
/**
* 跳转到查看宿舍信息界面
*/
public String dorInfoUI() {
Dormitory dor = dormitoryService.getDorById(dormitory.getDormitory_id());
ValueStack vs = ActionContext.getContext().getValueStack();
vs.set("dor", dor);
return "dorInfo";
}
/**
* 跳转到添加宿舍界面
*/
public String addDorUI() {
Building building = new Building();
building.setGender_in(dormitory.getGender_in());
//可入住楼宇
PageBean<Building> bud = buildingService.findByPage(building, 1);
ValueStack vs = ActionContext.getContext().getValueStack();
vs.set("bud", bud);
return "addDor";
}
public String addDor() {
Building bud = buildingService.findBuildingInfo(dormitory.getBuilding().getBuilding_id());
dormitory.setBuilding(bud);
//保存宿舍信息
dormitoryService.save(dormitory);
return "dListPage";
}
}
如果也想学习本系统,下面领取。关注并回复:105ssh