无法验证从 jsp 生成的 HTML

Can not validate an HTML generated from jsp

提问人:James 提问时间:6/29/2016 更新时间:6/29/2016 访问量:158

问:

怎么了?我已经使用这个网站很长时间了,但现在是我终于问点什么的时候了。开始了:

我正在尝试验证使用 jsp 生成的 HTML,但出现此错误:

there is no attribute "XMLNS"
<HTML xmlns="http://www.w3.org/1999/xhtml"><HEAD>

我知道我可以用一些类似的东西来修复它:

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

但是,尽管我在代码中使用它,但生成的 HTML 变为:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML xmlns="http://www.w3.org/1999/xhtml"><!-- Cabecera HTML --><HEAD>          
<META http-equiv="Expires" content="Mon, 26 Jul 1997 05:00:00 GMT">          
<META http-equiv="Last-Modified" content="Sun, 25 Jul 2004 16:12:09 GMT">
...
...

这是我的jsp代码的一部分:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:h="http://java.sun.com/jsf/html">

你们有什么想法吗?

谢谢!

java HTML 验证 JSP XHTML

评论


答:

0赞 Manoj Kumar 6/29/2016 #1

在下面提供的 DOCTYPE 下添加 htmlxmlns 标记,并尝试打开 HTML。

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

评论

0赞 James 6/29/2016
谢谢你的回答!我有一个问题:我应该如何处理命名空间(我的意思是那些东西:xmlns:ui=“java.sun.com/jsf/facelets” xmlns:f=“java.sun.com/jsf/core” xmlns:h=“java.sun.com/jsf/html"
0赞 Manoj Kumar 6/30/2016
它定义了一个 XML 命名空间。在您的示例中,命名空间前缀是“ui”、“f”、“h”,命名空间 URI 是“java.sun.com/jsf/facelets”、“java.sun.com/jsf/core”、“java.sun.com/jsf/html” 在文档中,您会看到如下元素:<ui:insert>、<h:outputText value=“” /> 等。查看这些关于命名空间说明的链接:w3schools.com/tags/tag_html.aspstackoverflow.com/questions/6322127/...sitepoint.com/xml-namespaces-explained
0赞 Roman Gordeev 6/29/2016 #2

看起来您正在使用 JSF,并且可能涉及一些 Mojarra 错误,例如 https://java.net/jira/browse/JAVASERVERFACES-2453 如果你打算将xmlns用于JSF组件,最好把你的布局放在xhtml页面,而不是jsp。

评论

0赞 James 6/30/2016
谢谢你的回答!顺便说一句,我正在使用 jsf 1.2(我们现在无法更新版本,公司规则。这很糟糕。如果这是一个 java faces 错误,我想我无法获得正确呈现的 HTML 页面。我错了吗?再次感谢!