В чем разница между <html>и элементом <html: html> в JSP? - PullRequest
0 голосов
/ 08 ноября 2018

Я занимаюсь разработкой простого веб-приложения Struts 1.x, и есть файл с именем 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> Визуализирует HTML-элемент с атрибутом href, указывающим на абсолютное местоположение вмещающей страницы JSP. Этот тег действителен только в том случае, если он вложен в элемент HTML <head>. Этот тег полезен, поскольку позволяет использовать относительные URL-ссылки на странице, которые рассчитываются на основе URL-адреса самой страницы, а не URL-адреса, по которому произошла самая последняя отправка (где браузер обычно разрешает относительное ссылки против).

1 Ответ

0 голосов
/ 09 ноября 2018

Тег <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> указывает taglib с префиксом html визуализировать элемент html при визуализации JSP.

Итак, чтобы ответить на ваш вопрос <html> - это директива HTML, а <html:html> - это тег Taglib Struts JSP для генерации директивы HTML <html>.

...