我正在开发一个简单的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>
默认情况下,使用<html>
代替<html:html>
,我是否可以知道这两个元素之间的主要区别是什么?是否需要指定它们的用途?此外,<html:base/>
元素的主要功能是什么?
顺便说一句,我为这些元素找到了一些定义,但我需要澄清一下:
<html:html>
呈现一个HTML<html>
元素,该元素具有从用户当前Locale对象中提取的语言属性(如果有)。
<html:base>
呈现具有href属性的HTML元素,该href属性指向封闭的JSP页面的绝对位置。仅当嵌套在HTML<head>
元素中时,此标记才有效。此标记很有用,因为它允许您使用页面中的相对URL引用,这些相对URL引用是基于页面本身的URL计算的,而不是最近一次提交所针对的URL(浏览器通常在该URL上解析相对引用)。
答案 0 :(得分:1)
<html:html>
标记是Struts 1.x JSP Taglib指令,在您的JSP页面的此行中声明:
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
这些自定义标签的格式通常为<prefix:tagname>
。在prefix
上声明的taglib
是将您的taglib容器绑定到该taglib中可用的标记列表的一种方式。
实质上,<html:html>
告诉标记为html
的taglib在呈现JSP时呈现html
元素。
因此,要回答您的问题,<html>
是HTML指令,而<html:html>
是Struts JSP taglib标记以生成HTML <html>
指令。