評教系統——學生評教前端顯示

業務需求:

  進入到學生具體評教頁面後,根據傳遞過來的課程類型,加載對應的考覈模板,然後查詢該考覈模板下面的所有考覈項目,同時綁定的還有每條考覈項目下的對應的選項(每條考覈項目的內容可以是不同的);當學生評完之後,如果有沒有評價的考覈項目,跳轉到未選考覈的項目那裏,進行提示。


實現:

  首先實體關係映射的時候,一個考覈模板對應多條考覈項目,一條考覈項目可以對應多個考覈選項。

  映射關係如下考覈項目和考覈選項設置成了雙向一對多的關係:

  考覈項目實體:

  

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>



界面效果:







發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章