【问题标题】:What is the difference between <html> and <html:html> element in JSP?JSP 中的 <html> 和 <html:html> 元素有什么区别?
【发布时间】:2018-11-08 05:31:46
【问题描述】:

我正在开发一个简单的 Struts 1.x Web 应用程序,有一个名为 success.jsp 的文件,这是示例代码:

<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic"%>
<%@ taglib uri="http://struts.apache.org/tags-nested" prefix="nested"%>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html:html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>success.jsp</title>
<html:base/>
</head>
<body>
<a href="myStart.do">Go to myStart</a>
</body>
</html:html>

默认使用&lt;html&gt;而不是&lt;html:html&gt;,请问这两个元素的主要区别是什么?是否有必要指定它们的用途?另外&lt;html:base/&gt;元素的主要作用是什么?

顺便说一句,我找到了这些元素的一些定义,但我需要澄清一下:

&lt;html:html&gt; 呈现一个 HTML &lt;html&gt; 元素,该元素具有从用户当前的 Locale 对象中提取的语言属性(如果有的话)。

&lt;html:base&gt; 呈现一个带有指向封闭 JSP 页面绝对位置的 href 属性的 HTML 元素。此标记仅在嵌套在 HTML &lt;head&gt; 元素内时有效。此标记很有用,因为它允许您在页面中使用根据页面本身的 URL 计算的相对 URL 引用,而不是最近提交的 URL(这是浏览器通常解析相对引用)。

【问题讨论】:

标签: java html jsp struts-1


【解决方案1】:

&lt;html:html&gt; 标记是 Struts 1.x JSP Taglib 指令,在 JSP 页面的这一行中声明:

<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>

这些自定义标签的格式通常为&lt;prefix:tagname&gt;。在 taglib 上声明的 prefix 将您的 taglib 容器绑定到 taglib 中可用的标记列表。

本质上&lt;html:html&gt;告诉taglib,前缀html在渲染JSP时渲染一个html元素。

所以要回答你的问题,&lt;html&gt; 是一个 HTML 指令,而 &lt;html:html&gt; 是一个 Struts JSP taglib 标记,用于生成 HTML &lt;html&gt; 指令。

【讨论】:

    猜你喜欢
    • 2012-02-14
    • 2014-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-13
    • 2011-06-02
    • 1970-01-01
    • 2012-08-15
    相关资源
    最近更新 更多