我有一些应该输出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)应该是一个空元素标记。”
答案 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编辑器。