Servlet中資料傳到JSP頁面使用el表示式${}無法顯示問題
阿新 • • 發佈:2019-01-31
當我使用mybatis從資料庫查詢資料,通過servlet返回到介面,出現了兩種錯誤。首先看我的servlet和jsp頁面。
Servlet程式碼
List<Student> students = studentService.queryStu();//作用:查詢學生資訊 通過service層呼叫dao層的介面 for(Student student:students) System.out.println(student);//遍歷 HttpSession session = request.getSession();///得到session物件 一次會話 session.setAttribute("students",students);//將集合存入session中 System.out.println("存入=========="); response.sendRedirect("show_stu.jsp");//重定向
JSP程式碼
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> //頭部也匯入jstl
<c:forEach items="${students}" var="stu"> <--遍歷集合--> <tr> <td>${stu.studentNo}</td> <td>${stu.studentName}</td> <td>${stu.sex}</td> <td>${stu.age}</td><td>${stu.boreDate}</td><td>${stu.classNo}</td> </tr> </c:forEach>
PS:studentNo,studentName...都為資料庫和po層的欄位
錯誤一:500伺服器內部錯誤
伺服器那邊也查詢出了學生資訊
說明錯誤的位置和dao層及service沒有關係,可能是頁面和其他原因。
錯誤原因:仔細檢查pom.xml發現jstl包導錯了(Maven專案,使用Maven的座標導包),jstl和standard包都需要。
<!-- https://mvnrepository.com/artifact/javax.servlet.jsp.jstl/jstl--> <!--<dependency>--> <!--<groupId>javax.servlet.jsp.jstl</groupId>--> <!--<artifactId>jstl</artifactId>--> 以前的jstl包 發現會導致錯誤 <!--<version>1.2</version>--> <!--</dependency>--> <!--https://mvnrepository.com/artifact/jstl/jstl 換成這個就對了 --> <dependency> <groupId>jstl</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> <!-- https://mvnrepository.com/artifact/taglibs/standard --> <dependency> <groupId>taglibs</groupId> <artifactId>standard</artifactId> <version>1.1.2</version> </dependency>
錯誤二:el表示式${}標籤的資料在頁面沒有顯示
將上面的一個錯誤解決後,又遇見了一個新的BUG。一波未平,一波又起。開始懷疑人生了。。。但是生活還得繼續,BUG也必須的逐一解決。在不斷的百度,Google後,終於找到一個解決方案。在JSP頁面的頭部加入一個標籤開啟el功能。
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%--加入該標籤手動開啟el功能--%>
<%@page isELIgnored="false"%>
原因:JSP和Servlet版本導致el功能預設關閉,加入<%@page isELIgnored="false"%>標籤手動開啟el功能。最後資料完整的顯示出來了。
遇到問題不可怕,關鍵是沉著冷靜,慢慢思考,仔細查閱資料,不要放棄。當通過自己的努力解決問題後,會特別開心(即使是小問題,也是在進步)。如果文中寫的有錯誤,或者有問題,還請讀者毫不吝嗇的指出來,一起學習一起進步嘛。
每日雞湯:接受真實的人生,真實的自己;改變能改變的,接受不能改變的。
Over!