教务管理系统-学生查询个人课表

原创 2016年05月31日 16:22:13

学生模块-查看个人课表

效果图:


数据库表设计(前期的表设计,实际稍微有改动):

实际的排课表实体类:
package com.edu.entity;

import java.io.Serializable;

import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;

/**
 * 课程时间表
 *
 * xukai 2016年5月26日下午2:07:44
 */
@Entity
@Table(name = "tms_course_timetable")
public class CourseTimetable implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = -4427937078756586298L;

	@Id
	@SequenceGenerator(name = "seq_gener_timetable", allocationSize = 1, sequenceName = "seq_course_timetable",initialValue=1)
	@GeneratedValue(generator = "seq_gener_timetable", strategy = GenerationType.SEQUENCE)
	private Integer id;

	@ManyToOne(targetEntity = Course.class, cascade = { CascadeType.REFRESH, CascadeType.PERSIST })
	@JoinColumn(name = "course_no")
	private Course course;

	private String time;//节次

	/**
	 * 上课地点: 教学楼-教室地点 C2001
	 */
	private String location;

	private String remarks;

	private String status;

	private String day;//星期


}
Dao层的数据查询方法:
	@Override
	public List<CourseTimetable> findByStuNo(String stuNo) {
		List<CourseTimetable> list = null;
		StringBuilder hql = new StringBuilder("From CourseTimetable as t,StuCourse as s Where s.course.courseNo ="
				+ "t.course.courseNo and s.student.stuNo = ? ");
		List<Object> params = new ArrayList<>();
		if(stuNo != null){
			//条件查询
			params.add(stuNo);
		}
		list = (List<CourseTimetable>) super.getHibernateTemplate().find(hql.toString(), params.toArray());
		return list;
	}
Action的数据传输:
	@Action(value = "/view_mine_course",results={
			@Result(name = "course_timetable",location = "/student/course_timetable.jsp")
	})
	public String viewCourse(){
		List<CourseTimetable> timetables = timetableService.queryByStuNo((String)this.session.get("id"));
		this.request.put("day", EnumTimetableDay.toMap());
		this.request.put("time", EnumTimetableTime.toMap());
		this.request.put("list", timetables);
		return "course_timetable";
	}
这里还添加了两个枚举:
星期枚举
package com.edu.enums;

import java.util.HashMap;
import java.util.Map;

/**
 * 时间表星期几
 *
 * xukai 2016年5月26日下午3:22:15
 */
public enum EnumTimetableDay {

	Monday("1","星期一"),
	
	Tuesday("2","星期二"),
	
	Wednesday("3","星期三"),
	
	Thursday("4","星期四"),
	
	Friday("5","星期五"),
	
	Saturday("6","星期六"),
	
	Sunday("7","星期日");

	private String code;

	private String value;

	private EnumTimetableDay(String code, String value) {
		this.code = code;
		this.value = value;
	}
	
	public static Map<String, String> toMap() {
		Map<String, String> map = new HashMap<>();
		for (EnumTimetableDay type : values()) {
			map.put(type.getCode(), type.getValue());
		}
		return map;
	}
}
节次枚举:
package com.edu.enums;

import java.util.HashMap;
import java.util.Map;

/**
 * 课程时间表 节次
 *
 * xukai 2016年5月26日下午3:27:08
 */
public enum EnumTimetableTime {

	ONE("1","第一~二节"),
	
	TWO("2","第三~四节"),
	
	THREE("3","第五~六节"),
	
	FOUR("4","第七~八节"),
	
	FIVES("5","第九~十节"),
	
	SIX("6","第十一~十二节");

	private String code;

	private String value;

	private EnumTimetableTime(String code, String value) {
		this.code = code;
		this.value = value;
	}
	
	public static Map<String, String> toMap() {
		Map<String, String> map = new HashMap<>();
		for (EnumTimetableTime type : values()) {
			map.put(type.getCode(), type.getValue());
		}
		return map;
	}
}
最后就是页面显示了,思路:先创建一个table,然后对每个tr和td进行编号,然后根据后台传输数据,重新再td中填入数据。
传输list的样例:
CourseTimetable [id=1, course=Course [courseNo=10001, courseName=计算机网络, status=1, type=2, credit=3, times=50, teacher=Teacher [teacherNo=20120101, teacherName=张老师, password=000, political=团员, idCard=null, sex=1, nation=汉族, degree=研究生, headUrl=null, email=null, telephone=null, status=1, startDate=2012-01-01, remarks=胡编的], remarks=网络原理], time=1, location=C-1001, remarks=大班, status=1, day=4]


<%@ 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 PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>学生课表</title>
<style type="text/css">
td {
	text-align: center;
	width: 10%;
}
</style>
<script type="text/javascript" src="../js/jquery.js"></script>
<script type="text/javascript">
	$(document).ready(function() {
		$('#first input').each(function () {
			var time = $(this).val().split("time=")[1].split(",")[0];//根据星期和节次,定位修改td的位置
			var day = $(this).val().split("day=")[1].substr(0,1);
			var id = '#tr_'+time+' #td_' +day;
			
			var courseName = $(this).val().split("courseName=")[1].split(",")[0];//获取课程名
			var teacherName = $(this).val().split("teacherName=")[1].split(",")[0];
			var location = $(this).val().split("location=")[1].split(",")[0];
			console.log(time+"-"+day+"-"+id);
			 $(id).text(courseName + "-" + teacherName + "-" + location );//设置位置
        });
	})
</script>
</head>
<body>
	<table border="1" align="center">
		<tr>
			<td id="first">节次
				<c:forEach items="${list }" var="l" varStatus="status">
					<input type="hidden" id="id_${status.index }" value="${l[0] }">
				</c:forEach>
			</td>
			<c:forEach items="${day }" var="d">
				<td>${d.value }</td>
			</c:forEach>
		</tr>
		<c:forEach items="${time }" var ="t" varStatus="status">
			<tr id="tr_${status.index+1 }">
				<td id="td_${status.index }">${t.value }</td>
				<td id="td_${status.index+1 }"></td>
				<td id="td_${status.index+2 }"></td>
				<td id="td_${status.index+3 }"></td>
				<td id="td_${status.index+4 }"></td>
				<td id="td_${status.index+5 }"></td>
				<td id="td_${status.index+6 }"></td>
				<td id="td_${status.index+7 }"></td>
			</tr>
		</c:forEach>
	</table>
</body>
</html>
*注:数据库中存的CourseTimetable的time和day都是对应两个枚举的key。



版权声明:本文为博主原创文章,未经博主允许不得转载。

超级课程表课表的界面的实现

http://blog.csdn.net/mhxy199288/article/details/30255761 由于毕业设计有一个功能模块是课程表,就想模仿一下超级课程表的界面,可...
  • code_dream_wq
  • code_dream_wq
  • 2017年05月19日 15:37
  • 681

Java 课程表管理系统

  • 2010年07月27日 07:08
  • 31KB
  • 下载

javaweb课程管理系统

  • 2015年09月10日 10:38
  • 4.76MB
  • 下载

Java-课程表

package kcb;import java.awt.Frame;import javax.swing.JFrame; import javax.swing.JScrollPane; import ...
  • wu2304211
  • wu2304211
  • 2015年08月30日 23:00
  • 1731

Java--使用httpClient模拟登陆正方教务系统获取课表

首先,感谢这篇博文给了我思路:http://www.blogfshare.com/php-curl-zhengfang.html  最近形如课程格子与超表课程表应用如雨后春笋般涌现,他们自动获取课程表...
  • u013586078
  • u013586078
  • 2014年12月18日 23:36
  • 7345

javaweb学生管理系统的课程设计

1.设计任务书 1.1 简单的学生管理体统 本人计划编写一个简单的学生管理系统,主要从两个身份来说——老师和学生,对于老师来说,带验证码的登录注册,对学生进行增删改查,以分页的形式展示学生的所有信...
  • DiuDiu666hf
  • DiuDiu666hf
  • 2016年07月22日 08:47
  • 9223

学生管理系统(jsp+mysql)

  • 2016年05月05日 18:46
  • 2.23MB
  • 下载

课程表查询系统--真正的课程表样式

  • 2012年04月05日 10:27
  • 263KB
  • 下载

教务管理系统(Java源代码)

  • 2008年01月19日 03:44
  • 4.34MB
  • 下载

jquery+ul绘制的课程表

  • 2013年03月16日 10:38
  • 10KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:教务管理系统-学生查询个人课表
举报原因:
原因补充:

(最多只允许输入30个字)