Java 是否使用;JSP文档";/&引用;XML表示法中的JSP;意味着输出XHTML?
我真的不确定这一点:使用“JSP文档”/“XML表示法中的JSP”是否意味着输出XHTML 如果是这样的话,在生成一个“有效”的XHTML页面时,是否需要特别注意Java 是否使用;JSP文档";/&引用;XML表示法中的JSP;意味着输出XHTML?,java,xml,jsp,xhtml,Java,Xml,Jsp,Xhtml,我真的不确定这一点:使用“JSP文档”/“XML表示法中的JSP”是否意味着输出XHTML 如果是这样的话,在生成一个“有效”的XHTML页面时,是否需要特别注意 更具体地说:我可以拥有一个有效的“JSP文档”(XML格式的JSP)来生成一个无效的XHTML页面吗?这取决于您对XHTML的定义。对于大多数人来说,XHTML只是指格式良好的XML中的HTML。从这个意义上讲,JSP文档意味着XHTML,因为JSP文档本身就是格式良好的XML 然而,JSP文档本身并不强制任何XHTML规则。例如,您
更具体地说:我可以拥有一个有效的“JSP文档”(XML格式的JSP)来生成一个无效的XHTML页面吗?这取决于您对XHTML的定义。对于大多数人来说,XHTML只是指格式良好的XML中的HTML。从这个意义上讲,JSP文档意味着XHTML,因为JSP文档本身就是格式良好的XML 然而,JSP文档本身并不强制任何XHTML规则。例如,您仍然可以使用不推荐的标记生成XHTML 1.0 Strict文档,如 还可以在JSP文档中使用自定义标记来生成非XML标记,从而将整个文档呈现为非XML 我真的不确定这一点:使用“JSP文档”/“XML表示法中的JSP”是否意味着输出XHTML 它至少意味着使用和生成格式良好的XML。如果您编写了无效的XML,那么在解析过程中将出错。如果它生成格式良好的XML,那么它不可能是HTML4,因为不允许关闭短标记,如
br
、hr
、meta
和link
在使用JSP文档时,您建议提供什么服务?过渡期?严格的HTML5XML?HTML5HTML?(HTML5允许关闭标记,如
)
因为它是格式良好的XML,所以应该选择XHTML或HTML5。虽然HTML5规范仍处于草稿模式,但它允许关闭短标签。另见下文末尾:
但是,有些元素被禁止包含任何内容。这些元素称为空心元素。在HTML中,上述语法不能用于void元素。对于这些元素,必须省略end标记,因为解析器会自动关闭元素。这些元素包括,br
、hr
、link
和meta
HTML示例:
<link type="text/css" rel="stylesheet" href="style.css">
在XHTML中,XML语法要求规定必须使用显式结束标记(如上所述)或空元素语法将其显式化。这是通过在右括号前的开始标记末尾插入斜线来实现的
例如:
<link type="text/css" href="style.css"/>
作者也可以选择对HTML语法中的void元素使用相同的语法。有些作者还选择在斜杠前加空格,但这不是必需的。(以这种方式使用空白是从XHTML 1.0附录C中的兼容性指南继承而来的惯例。)
然后,过渡和严格之间的选择取决于您希望支持的web标准的程度。为此,of提供了一个极好的概述 首先,您希望尽可能避免这种情况,因为这会触发MSIE浏览器,从而在CSS指定时导致元素的边距、填充和尺寸不一致。缺少doctype或doctype不正确将触发此模式 我强烈建议选择一个严格的doctype,因为盒子模型和行为将在世界上已知的不同网络浏览器中尽可能保持一致。根据您希望支持的元素/属性/vaildate,以下任一doctype都可以 :
或更新版本:
或(仍处于草稿模式):
请注意,在使用xhtml时,您需要确保HTTP
内容类型
标题设置为text/html
,而不是application/xml
或application/xhtml+xml
,否则MSIE可能仍然会发疯,因为它不支持这一点。有关更多详细信息,请参见。同一篇文章确实提到了服务,但这只适用于使用声明呈现和/或包含未嵌入CDATA
块的内联Java脚本的情况。@ZZ Coder:+1,很有趣。在使用JSP文档时,您建议提供什么服务?过渡期?严格的HTML5XML?HTML5HTML?(HTML5允许像
这样的结束标记)这取决于您的受众。我不参与这个决定,但我们所有的页面都使用了过渡性。HTML5目前对我们的目标市场没有足够的渗透力。注意:无效意味着不符合XHTML模式,格式不好意味着所有打开的标记都是关闭的,属性都在引号中,等等。很好的链接,但在您给出的文章中,作者特别写道“将XHTML作为文本/html提供被认为是有害的”. 这太疯狂了。这里该信任谁?BalusC或BalusC提供的链接?:)当它返回
声明和/或使用内联Java脚本时,它是有害的,但这两者反过来也被认为是糟糕的做法。我不确定JSPX,但是Facelets(较少或更多的继承者)在解析模板后不会发出
声明。然而,使用HTML5 doctype的建议是合理的。我不知道HTML5中也允许关闭短标签。是的,从这个角度来看,HTML5似乎很棒。。。该死的,在阅读了几篇文档(这就是我学习如何关闭HTML5中的短标签)之后,在这里提问,阅读了更多的文档和你指向的链接。。。我觉得我比以前更了解这两个方面,但不知何故,我仍然感到困惑。这一切都有点混乱:)我改进了我的答案,将HTML5考虑在内。顺便说一下,我自己使用HTML5作为“普通”JSP/Servlet,使用XHTML1.1作为Facelets。然而,我将考虑在Helelts上进行HTML5的实验。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<!DOCTYPE html>