1. 程式人生 > >Servlet中資料傳到JSP頁面使用el表示式${}無法顯示問題

Servlet中資料傳到JSP頁面使用el表示式${}無法顯示問題

       當我使用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!