2010-05-24 40 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