评教系统——学生评教前端显示

业务需求:

  进入到学生具体评教页面后,根据传递过来的课程类型,加载对应的考核模板,然后查询该考核模板下面的所有考核项目,同时绑定的还有每条考核项目下的对应的选项(每条考核项目的内容可以是不同的);当学生评完之后,如果有没有评价的考核项目,跳转到未选考核的项目那里,进行提示。


实现:

  首先实体关系映射的时候,一个考核模板对应多条考核项目,一条考核项目可以对应多个考核选项。

  映射关系如下考核项目和考核选项设置成了双向一对多的关系:

  考核项目实体:

  

public class AssessContent extends BaseEntity {
	
	@OneToMany(mappedBy="assessContent",cascade=CascadeType.ALL,targetEntity=Weight.class,fetch = FetchType.EAGER)
	@JsonIgnore
	private Set<Weight> weights = new HashSet<Weight>();
}


  Controller:


	@RequestMapping(value = "/queryAssessContentList")
	public String queryAssessContentList(HttpServletRequest request,
			HttpServletResponse response) throws UnsupportedEncodingException {
		
		Map<Serializable, Serializable> map = new HashMap<Serializable, Serializable>();
		// 获取前台传递的参数
		String studentName = new String((request.getParameter("studentName")).getBytes("iso-8859-1"),"utf-8");
		String courseName = new String((request.getParameter("courseName")).getBytes("iso-8859-1"),"utf-8");
		String teacherName = new String((request.getParameter("teacherName")).getBytes("iso-8859-1"),"utf-8");
		String teacherId = new String((request.getParameter("teacherId")).getBytes("iso-8859-1"),"utf-8");
		String studentId = new String((request.getParameter("studentId")).getBytes("iso-8859-1"),"utf-8");
		String courseId = new String((request.getParameter("courseId")).getBytes("iso-8859-1"),"utf-8");
		String courseTypeId = new String((request.getParameter("courseTypeId")).getBytes("iso-8859-1"),"utf-8");
		String Id=new String((request.getParameter("Id")).getBytes("iso-8859-1"),"utf-8");
		

		// 根据课程Id查询该课程ID对应的模板ID
		List<Template> templates=templateBean.queryTemplateByClassTypeId(courseTypeId);
		// 获取模板Id
		String templateId=templates.get(0).getId();		
		 map.put("templateId", templateId);
		// 根据模板Id查询对应的考核项目
		List<AssessContent> assessContentlist = assessContentBean.queryContentByTemplateId(templateId);

		// 获取待评选项的数量
		int assessCount = assessContentlist.size();

		// 将查询的信息放入到request中。
		request.setAttribute("Id", Id);
		request.setAttribute("templateId", templateId);
		request.setAttribute("teacherId", teacherId);
		request.setAttribute("studentId", studentId);
		request.setAttribute("courseId", courseId);
		request.setAttribute("courseTypeId", courseTypeId);
		request.setAttribute("assessCount", assessCount);
		request.setAttribute("studentName", studentName);
		request.setAttribute("courseName", courseName);
		request.setAttribute("teacherName", teacherName);
		request.setAttribute("assessContentlist", assessContentlist);
		return "/studentAssessDetial";
	}



  JSP页面:主要是通过JSTL表达式和EL表达式进行循环绑定


<body>
	<form id="StudentAssessInfo" action="studentAssessResult">
	
		<a id="tiaozhuan" href="#" style="display: none;">要跳转到div啊</a>
		<!--获取是否评教Id -->
		<input id="ifPj" type="hidden" value="${Id}">
		<!--获取待选数量 -->
		<input id="hidAssessProjectCount" type="hidden" value="${assessCount}">
		<!--学生学号 -->
		<input id="studentId" name="studentId" type="hidden"
			value="${studentId}">
		<!-- 教师教工号 -->
		<input id="teacherId" name="teacherId" type="hidden"
			value="${teacherId}">
		<!-- 课程号  -->
		<input id="courseId" name="courseId" type="hidden" value="${courseId}">
		<!-- 课程类型Id  -->
		<input id="courseTypeId" name="courseTypeId" type="hidden"
			value="${courseTypeId}">
		<!--模板Id -->
		<input id="templateId" name="templateId" type="hidden"
			value="${templateId}">
			
		<input id="templateId" name="templateId" type="hidden"
			value="${a}">
		<div class="" style="border: 1px solid;">

			<div id="welcome"
				style="margin-left: 100px; margin-top: 30px; margin-right: 100px; margin-bottom: 30px;">
				<span class="title">【${studentName}】</span>您好,欢迎使用此评教系统,请对<span
					class="title">【${teacherName}】</span>老师的<span class="title">【${courseName}】</span>进行评分!
			</div>
			<div id="assessContent"
				style="border: 1px solid; margin-left: 100px; margin-top: 30px; margin-right: 100px; margin-bottom: 30px; padding-bottom: 20px; padding-top: 20px; padding-left: 20px; padding-right: 20px;">
				<div id="content">
					<table id="assessDetial" cellpadding="10px">
						<tbody>
							<c:if test="${!empty assessContentlist}"></c:if>

							<!--绑定考核项目和每个考核项目的选项 -->
							<c:forEach items="${assessContentlist}" var="a"
								varStatus="status">
								<tr>
									<td><div id="${status.index+1}" name="assessSelectedDiv">
											<c:out value="${status.index+1}" />
											、${a.assessContent}<br>
											<c:forEach items="${a.weights}" var="b">
												<input type="radio" name="${a.id}" value="${b.id}" id="lable${b.id}"
													class="answer"><label for="lable${b.id}">${b.weightContent}	</label>
													
												<br />
											</c:forEach>
										</div></td>
								</tr>
							</c:forEach>
						</tbody>
					</table>
				</div>
				<div id="suggestion">
					<textarea id="txtCmt" rows="6" cols="100"
						style="width: 400px; font-size: 14px;">请输入你对该老师的评价</textarea>
					<br> <input id="comnit" type="button" value="提交"
						οnclick="javascript:checkResult()">
				</div>


			</div>
			<div id="footer" style="text-align: center;">
				<div class="footer">
					<a href="#">By@廊坊师范学院提高班</a>
				</div>
			</div>
		</div>
	</form>
</body>



界面效果:







  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值