JSP頁面中使用JSTL標簽出現無法解析問題解決辦法


  今天建立一個JavaWeb工程測試JNDI數據源連接,在jsp頁面中引入了JSLT標簽庫,代碼如下:

 1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
 2 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
 3 <%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql"%>
 4 
 5 <!DOCTYPE HTML>
 6 <html>
 7   <head>
 8     <title>JNDI數據源連接測試</title>
 9   </head>
10   
11   <body>
12         <sql:query var="rs" dataSource="jdbc/oracle">
13             SELECT * FROM LEAD_OAMS_DBSOURCES
14         </sql:query>
15 
16         <c:forEach var="row" items="${rs.rows}">
17             ${row.RESOURCEID}---${row.DBSOURCE_NAME}---${row.DBSOURCE_TYPE}<br/>
18         </c:forEach>
19   </body>
20 </html>

  如上,在Jsp中使用了foreach等jstl/core中的語法,結果一運行就報錯,報錯為:

1 org.apache.jasper.JasperException: The absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml or the jar files

  如下圖所示:

  

  從錯誤信息來看是說jsp頁面的引入的jstl標簽庫無法解析,上網找了一下這個錯誤的原因,原來是我的web項目中沒有jstl標簽庫的相關jar包造成的,也就是缺少jstl.jar和 standard.jar這兩個jar包才造成這個問題的(這個問題比較郁悶,我以為MyEclipse會自動導入jstl.jar和 standard.jar這兩個jar包)如下圖所示:

  

  既然是缺少了jstl.jar和 standard.jar,那么解決的辦法就是手動將jstl.jar和 standard.jar這兩個jar包加入到web項目的WEB-INF/lib目錄中或者是把jstl.jar、standard.jar復制到tomcat的lib中就可以了,JSTL API 和實現包,在Tomcat下面都有,位於 %TOMCAT_HOME%/webapps/examples/WEB-INF/lib 目錄中,如下圖所示:
  
  這個目錄下只有jstl.jar和standard.jar這兩個文件,前者是JSTL規范 API,后者是 JSTL的標准實現。把這兩個jar包放到Web工程的WEB-INF/lib目錄,如下所示:

  

  重新啟動tomcat服務器,再次訪問使用了JSTL標簽庫的jsp頁面,這次就可以正常使用JSTL標簽庫中的標簽庫了,如下圖所示:

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM