在我的web应用程序中,我得到了包含默认标题内容的Header.jsp文件。我使用jsp:include标签将它包含在所有其他页面的每个单独页面的body标签中。
标题。jsp包含自己的HEAD标记,用于指定默认的元标记、链接样式表、脚本和一些HTML元素。同时,我将在所有其他单独的页面中使用另一组HEAD标记来定义标题、页面特定的脚本和样式表。
例如:
Header.jsp
<head>
<link rel="shortcut icon" href="<%=request.getContextPath()%>/images/favicon.ico" type="image/x-icon" />
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
<script src="js/jquery.js"></script>
<link rel=stylesheet type="text/css" href="dashboard.css" >
</head>
<h2>Dashboard</h2>
Main.jsp
<!DOCTYPE html>
<html>
<head>
<title>Main page</title>
<script src="main.js"></script>
</head>
<body>
<jsp:include page="Header.jsp" flush="true" />
.....
other HTML contents specific to main page
.....
</body>
</html>
这样做是否有效?
良好的响应@Gwenc37。您可以在任何其他标签中拥有任何标签,但最好始终遵守W3C标准和规范。在项目的后期,您可能会遇到HTML在浏览器中无法正确解析甚至更糟的情况。
为了安全起见,最好遵循W3C标准。这样你就不会出错。希望这有所帮助。
按标准是无效的
相关部分:
4.2.1头部元素
类别:无。
可以使用该元素的上下文:作为html元素中的第一个元素。
你的第二个
这不是一个好的解决办法,但绝对行得通。
人们通常会在理论上回答这些问题,比如“不,因为它在标准上是无效的”。没错,事实并非如此。未来的浏览器可能不支持它,一些源代码解析器可能会感到困惑,HR / IT专家检查您的投资组合可能会认为您比Jon Snow知道的要少,以及各种坏事。从理论上讲。但它确实发生在现实世界中,浏览器并不愚蠢:他们知道你的意思,他们会同时使用头部标签并按预期工作。
这不仅仅是偶然的
他们有很好的理由:
1.头标签是可选的。(见文章下面的注释!)
浏览器甚至在它之外也接受类似头标签的内容,所以实际上他们完全忽略了标签本身。如果他们忽略了一个,他们可能也会忽略几个。
2.访客是珍贵的。< br >浏览器希望您享受时间。他们想向你展示他们在混乱中能写出的最好的页面。这是他们的意图,他们想让你知道互联网是有用的,而不是教你你最喜欢的网站有多糟糕。如果他们能发现html代码想要表达什么(而且结构中没有致命的歧义),他们会尽最大努力修复页面。
3.错误的标记容忍是一件事。< br >浏览器不仅仅是耐心和宽容,有时它们还会像杂技一样让你的东西工作。看看这可怕的混乱:
<!-- no doctype! -->
<!-- no HTML tag! we're all gonna die! -->
<head>
<style>
body {background:#002233;}
</style>
</head>
<head><!-- let's twist again! -->
<style>
body {color:white}
</style>
<!-- we didn't even close the second one!! -->
See this text?<br>
With the background AND color properly set?<br>
<br>
Your browser's quite a badass.
关于浏览器的容忍度,这里有更多超级丑陋的例子 - 确保你忘记了你回来后看到的一切!
所以是的,当然,原则是“做你浏览器的好朋友”,无论它多么巧妙的修复了你的错误。但是如果你在一个黑暗的地牢中醒来,周围都是饥饿的狮子,你唯一的出路就是使用两只
TLDR:实际上,两个head tags是有效的。
如果可能的话,现在请只吃一个。
正如@StanislavBerkov指出的那样,W3C和MDN都暗示了HEAD标签,这意味着最好完全保留头部
标签。如果您有仅使用其中一个的标准选项,我不会推荐此方法,但是没有一个显然比使用两个要好。文档围绕该主题不是很清楚,因此请确保在主要浏览器中测试所有内容 - 但同样,在实践中,您不会遇到任何问题。
问题内容: 标签中可以包含哪些有效的html元素(如果有)? 问题答案: 内联元素(除其他外)可以包含其他内联元素和文本节点。锚点可以包含一个范围,该范围可以包含一个文本节点。 通常,块级元素可以包含内联元素和其他块级元素。通常,内联元素可以仅包含数据和其他内联元素。这种结构上的区别固有的思想是,块元素比内联元素创建“更大”的结构。 在其他的答案指出,你不能嵌套的在。
问题内容: 我试图找出适当的Razor语法,以将特定* .cshtml的JavaScript文件与_Layout.cshtml中定义的所有其他包含文件一起放在head标签中。 问题答案: 您可以使用 命名节 。 _Layout.cshtml _SomeView.cshtml
在邮件中,我想显示一个java变量: 在邮件模板中,我执行以下操作: 在邮件中,它转换为: 如何使变量得到很好的解释。 非常感谢。
问题内容: 我想截断一些文本(从数据库或文本文件加载),但其中包含HTML,因此包含了标签,并且将返回较少的文本。然后,这可能导致标签未关闭或部分关闭(因此Tidy可能无法正常工作,并且内容仍然较少)。我如何基于文本截断(并且可能在到达表时停止,因为这可能会导致更复杂的问题)。 将导致: 我想要的是: 我怎样才能做到这一点? 虽然我的问题是有关如何在PHP中进行操作,但最好知道如何在C#中进行操作
问题内容: 我需要匹配所有这些开始标签: 但不是这些: 我想出了这个,想确保我做对了。我只是捕捉到。 我相信它说: 找到一个小于,然后 查找(并捕获)az一次或多次,然后 找到零个或多个空格,然后 找到零次或多次贪婪的字符,除了,然后 寻找大于 我有那个权利吗?更重要的是,您怎么看? 问题答案: 尽管只有正则表达式的任意 HTML是不可能的,但有时使用它们来解析有限的已知 HTML集合是适当的。
问题内容: 我的数据库存储产品信息,其中许多信息被组织成列表。我将数据加载到Angular中。 例如, 当我尝试将此数据加载到我的Angular应用程序中时,它会以文本形式呈现(即未解析)。我了解这可能是出于安全原因而发生的,但是有什么解决方法吗? 问题答案: 正如Damax在这里所说的那样: