2010-05-24 41 views
4

我已經在SO(以及整個網絡上)看到過這種問題。例如這裏:Java:如何調試無效的JSTL聲明?

JSPX namespaces not visible for EL functions?

今天早些時候,我試圖在JSP(常規的.jsp,不.jspx)要做到這一點,因爲我愣神剪切/粘貼在網絡上發現了一些例子:

<%@ taglib prefix = "c" uri = "http://java.sun.com/jstl/core"%> 

然後我的.jsp文件給出了一個空白頁。 Tomcat日誌中沒有錯誤消息。沒什麼。只是一個空白頁面。

雖然,當然(我在諷刺在這裏)的,正確的路線是這樣的:

<%@ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core"%> 

有一個「JSP /」丟失(這是我在另一個發現一個提示SO問題)。

所以顯然這樣的問題很常見。

我不能相信你必須等待事情「不要工作」,以知道你有錯誤,我真的有點困惑於網上發現的問題的數量(和這裏SO )答案基本上是「修正你的聲明」。

我在這裏的問題很簡單:你怎麼知道這是一個聲明問題?這裏需要哪些思考過程來診斷和解決這些問題?有工具可以幫助嗎? (我不知道,例如,IntelliJ IDEA或Eclipse或Emacs在nxml模式下實時警告您聲明的URI無效?)

回答

2

如果您看到標籤未解析,請在webbrowser中查看頁面源代碼,那麼taglib不會被找到/加載。

我不確定是否理解了您的最後一條語句,但是如果在classpath中找不到taglib,則會出現紅色線條的Eclipse錯誤。

+0

哦,我的......我剛剛接管了一些項目(不是我的),並做了一些小小的修復左右。我沒有注意到我的IDE沒有任何.jsp支持:)然後,我非常喜歡關於未分析標籤的*「view source」*技巧! – SyntaxT3rr0r 2010-05-24 21:12:38

+0

不客氣。 – BalusC 2010-05-24 21:20:17

2

http://java.sun.com/jstl/core是一個有效的JSTL聲明 - 它是JSTL core 1.0的URI。 http://java.sun.com/jsp/jstl/coreJSTL core 1.1的URI。

+1

+1 ...肯定是類似* ... sun.com/jstl/core10*和* ... sun.com/jstl/core11*的東西會更多,以及一致:)也許對於JSTL核心1.2它是將成爲* http://java.sun.com/web/jsp/jstl/core*或者其他東西:) – SyntaxT3rr0r 2010-05-24 21:28:18