标准HTML里标签的顺序
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了标准HTML里标签的顺序相关的知识,希望对你有一定的参考价值。
我看到过好多版本,想找一个标准的
以下标签的顺序:
<!DOCTYPE> , <%@taglib>,<meta>,<link>,<html>
<!DOCTYPE>用来指定生成的html文件的文档类型,供浏览器参照的。目前有好几个供选择,主要是看网页的用途的。一般都用兼容类型的。
<meta><link>一同放在<head>里面,都不是必须的,顺序也无所谓。
<html>是网页的最顶层。
你可以从DOCTYPE后面的URL地址里面找到相应的schema或dtd,你要是会看的话,里面对html标签有着标准的第一手参考定义。 如:http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd,这个文件可以下载下来。 参考技术A 打开DW新建一个就出来了
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>
<body>
</body>
</html>
Jsp 自定义标签以错误的顺序替换为 html 内容
【中文标题】Jsp 自定义标签以错误的顺序替换为 html 内容【英文标题】:Jsp custom tags get replaced with html content in wrong order 【发布时间】:2014-01-11 00:20:38 【问题描述】:我在上一堂课中了解到,jsp的自定义标签在评估自定义标签后会被替换为html内容。
但是将这个概念付诸实践,我遇到了以下问题。 我在 jsp 中有 3 个 div ,其中 2 个是静态的,中间 div 中有一个自定义标签。所以中间div的自定义标签生成的html内容只能在中间div替换。
但是,输出提示了其他内容,如果代码有问题,或者问题开始时使用的语句需要修改,请指出。
home.jsp
<div style="height: 80px; background-color: #FFA500;">
<%@ include file="banner.html"%>
</div>
<div style="height: 450px;">
<connect:dbConnector user="root" password="" url="jdbc:mysql://localhost/musicstore" scope="session">
</connect:dbConnector>
<connect:Query where="select * from musicstore.songs;">
<ui:addTable name="musicList">
<c:forEach var="value" items="$result ">
<c:set scope="session" var="currentRow" value="$value "></c:set>
<ui:addRow data="currentRow" scope="session">
</ui:addRow>
</c:forEach>
</ui:addTable>
</connect:Query>
</div>
<div style="height: 80px; background-color: #FFA500;">Footer
content</div>
我可以在网络浏览器上看到的html内容是
<table border="1" name=" musicList ">
<tr> <td>Tum hi ho</td>
<td>Arjit Singh</td>
<td>45</td></tr>
<tr> <td>Manjha</td>
<td>Amit Trivedi</td>
<td>30</td></tr>
<tr> <td>Ranjhanna</td>
<td>A.R Rehman</td>
<td>25</td></tr>
<tr> <td>Sawar Loon</td>
<td>Monali Thankur</td>
<td>20</td></tr>
</table>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<div style="height: 80px; background-color: #FFA500;">
<img src="/WEB-INF/resources/music_banner.png" ></img>
</div>
<div style="height: 450px;">
</div>
<div style="height: 80px; background-color: #FFA500;">Footer
content</div>
</body>
</html>
AddRowTag.java
public class AddRowTag extends TagSupport
// some getter, setter and other utility methods here.
@Override
public int doStartTag() throws JspException
try
System.out.println("AddRowTag--> doStartTag");
Row content = getDataToDisplay();
StringBuilder htmlContent = new StringBuilder();
htmlContent.append(startTableRow);
htmlContent.append(startTableData);
htmlContent.append(content.getTitle());
htmlContent.append(endableData);
htmlContent.append(startTableData);
htmlContent.append(content.getArtist());
htmlContent.append(endableData);
htmlContent.append(startTableData);
htmlContent.append(content.getPrice());
htmlContent.append(endableData);
htmlContent.append(endableRow);
System.out.println(htmlContent.toString());
pageContext.getResponse().getWriter().print(htmlContent);
catch (IOException e)
e.printStackTrace();
return SKIP_BODY;
总结问题:
-
在哪里(在转换代码(html 代码)放置位置的上下文中)jsp 自定义标记代码放置在最终的 html 文件中。
如果我想在自定义标签的基础上更新中间 div,我需要在我当前的当前 jsp 代码中修改什么。
任何建议/解释都将受到高度赞赏。
【问题讨论】:
问题可能出在标签本身。我的猜测是它直接写入响应输出流或写入器,绕过 JSP 写入器,它会做一些缓冲。要确认并提出修复建议,请发布代码。旁注:为什么使用会话范围将当前行存储在迭代中?这就是页面范围的用途。 @JBNizet 您在Side Note
中提出的观点是正确的,我需要使用他们的页面范围。另请参阅问题中的编辑,我已经发布了 AddRowTag 的代码。
【参考方案1】:
标签不应直接写入响应。通过这样做,它绕过了 JspWriter,它也写入响应但缓冲其输出。
替换
pageContext.getResponse().getWriter().print(htmlContent);
通过
pageContext.getOut().print(htmlContent);
【讨论】:
以上是关于标准HTML里标签的顺序的主要内容,如果未能解决你的问题,请参考以下文章