在Eclipse中编辑xhtml jsp文件

时间:2009-02-12 13:55:25

标签: java eclipse jsp xhtml

我有一些应该输出xhtml的jsp文件。他们似乎有正确的doctype等,但Eclipse没有解析xhtml属性。例如,对于根元素:

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

我收到警告:“未定义的属性名称(xmlns)。”在Eclipse中解决这个问题的最佳方法是什么?

编辑:此特定文件的doctype显然是错误的,它被设置为:

<!DOCTYPE html PUBLIC 
   "-//W3C//DTD XHTML 1.1 Transitional//EN" 
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

显然不存在。 Eclipse现在抱怨taglib标签,即:

<%@taglib prefix="s" uri="/struts-tags" %>

生成警告:“Tag(jsp:directive.taglib)应该是一个空元素标记。”

4 个答案:

答案 0 :(得分:4)

如果您要输出xml(根据我的理解xhtml xml),那么您应该使用jsp 文档语法,例如您的

<%@taglib prefix="s" uri="/struts-tags" %>

应该是某个顶级标记中的命名空间。对于我正在研究的项目,所有的jsp都是这样的

<?xml version="1.0" encoding="UTF-8" ?>
<jsp:root version="2.0"
      xmlns:jsp="http://java.sun.com/JSP/Page"
      xmlns:c="http://java.sun.com/jsp/jstl/core"
      xmlns:fmt="http://java.sun.com/jsp/jstl/fmt"
      xmlns:fn="http://java.sun.com/jsp/jstl/functions">
<jsp:directive.page language="java"
    contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"/>
<jsp:text><![CDATA[<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">]]>
</jsp:text>
<html xmlns="http://www.w3.org/1999/xhtml">
...
</html>
</jsp:root>

答案 1 :(得分:2)

这看起来很奇怪,我在Eclipse中使用相同但使用PHP并且它工作正常。

您使用的DOCTYPE是什么?我用过

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

答案 2 :(得分:1)

如果您正在使用JSF,请检查您是否获得了两次视图标记。

这就是我解决消息的方式:Undefined attribute name "xmlns:ui"

答案 3 :(得分:0)

最后,您可以安装JBoss Tools(update site for Eclipse,guides),它提供了相当不错的XHTML / JSP编辑器。