JSP和Eclipse验证问题

6
我在Eclipse中有一个简单的JSP页面,文件的第一行是:
然而,Eclipse在这一行前面放置了一个黄色警告图标,并显示以下工具提示消息:

此行发现多个注释:
- 行断点:index.jsp [line:1]
- 标记(jsp:directive.page)应该是一个空元素标记。

有没有人知道这是为什么?
更新:
这是我的完整源脚本。这基本上是Eclipse根据XHTML模板创建新JSP文件时为我生成的模板。我只稍微修改了内容,以使它有些“有用”。
我使用的是Ubuntu 8.10上的Eclipse 3.4(eclipse-jee-ganymede-SR1-linux-gtk.tar.gz)和Geronimo 2.1插件(我认为这并不重要)。我在迄今为止使用的每个Eclipse版本(3.0及以上版本)都遇到了同样的问题。
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<jsp:useBean id="datetime" class="java.util.Date" />
<html>
    <head>
        <title>Hello Geronimo</title>

        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    </head>
    <body>
        <div>
            <h1>Hello Apache Geronimo!!!</h1>on ${datetime}
        </div>
    </body>
</html>

没错,但是使用XHTML 4.01的DOCTYPE就足以让这个警告消失了吗? - VonC
是的,这样做可以消除警告。然而,我不知道还有XHTML 4.01这样的东西...我也升级到了最新版本的Eclipse。这也解决了问题。谢谢! - Luke
1个回答

4
这是一个奇怪的DOM验证现象,即使是针对JSP文件,在编辑器中也会发生验证。在另一种情况下报告了bug 248963。预计在WTP 3.0.4和Ganymede SR2中解决。
您使用的是哪个版本的Eclipse和WTP?
您可以添加以下行到初始jsp声明下方,检查是否仍然存在此问题:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
  "http://www.w3.org/TR/html4/loose.dtd">

如在错误257258中提到的(也已在WTP 3.0.4和Ganymede SR2中修复):在WTP3.0.4之前,此doctype已足以不显示您的警告:

alt text
(来源:eclipsetotale.com)


我已经更新了我的问题并提供了更多信息。感谢您的回复。 - Luke
顺便说一下,您的DOCTYPE解决了问题,但我不使用过渡(X)HTML。 永远不会 :) - Luke
好的!但这意味着更新的Eclipse 3.4应该能够解决这个问题(而不是强制更改DOCTYPE)。 - VonC

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接