每次我读到 meta 标签时,属性的描述顺序如下:
<meta name="description" content="..." />
首先是名称,然后是内容。它也类似于谷歌网站管理员文档中的内容。基本上,到处都是这样。
现在在 .jsp(以 XML 表示法)中,我有以下内容:
<meta name="description" content="${metadesc}"/>
所以先是名字,然后是内容。
然而在生成的网页上,我得到了这个:
<meta content="...(200 chars or so here making it a very long line)..." name="description"/>
不知何故属性被颠倒了。因为内容遵循官方 W3C 和 Google 推荐,内容长度略少于 200 个字符,这使得“目视验证”name 属性是否正确(我必须滚动)变得非常痛苦。
无论如何...
为什么这些属性没有按照 .jsp 中定义的顺序出现?
我可以强制它们按照我在 .jsp 中编写的相同顺序出现吗?
我意识到生成的标签可能是有效的...但我也可以想象出很多非常有创意的方法来获得用户会非常不高兴的有效标签。反转这些属性是否有意义?
编辑 哇,哇...如果我反转我的 .jsp 中的属性(也就是说,以“错误”的顺序编写它们),那么它们就会按照我希望的方式出现在生成的网页中。 (Tomcat 6.0.26 顺便说一下)
最佳答案
属性顺序是 XML 中的一个外来概念。有些东西要么有属性,要么没有,XML 中没有任何内容规定一个属性应该(或必须)出现在另一个属性之前。
这样想,你有一个名字,你有一个头发的颜色。两者都是你的属性,但在什么情况下你必须有头发颜色才能有名字(或有名字之后)。
元素在某种程度上确实允许排序,因为您可以在 DTD 和 XSD 中指定嵌套项的顺序。
关于Java:.jsp 中的属性顺序颠倒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2946516/