Повторный Обзор Дескриптора Библиотеки


Если вы посмотрите еще раз на дескриптор библиотеки тэга, который мы использовали для приведенных выше тэгов, вы обнаружите, что вы знакомы с первыми двумя строками после прочтения главы об XML из этой книги. Тэг <taglib> понятен сам по себе, он определяет начало библиотеки тэга. Обычно у вас будет один такой тэг на каждый TLD дескриптор. Он имеет несколько вложенных элементов:

  • tlibversion - определяет номер версии, который может помочь программисту применять некоторую проверку во время трансляции, получая возможность читать номер версии.
  • jspversion - определяет номер версии, который помогает контейнеру определить, JSP какой версии предполагается использовать, так что если необходимо, можно отключить большинство дополнительных особенностей или выполнить специальную операцию, которую необходимо выполнить для обратной совместимости.
  • shortname - определяет легкое в использование имя, которое может использоваться в GUI средах в качестве префикса к любому генерируемому тэгу или директиве...
  • uri - определяет уникальный идентификатор для библиотеки тэга. Обычно это полезно определять в форме HTTP URL, как в примере этой главы, но это не значит, что будет найдена соответствующая web страница, не смотря на то что это уникально.
  • displayname - определяет имя, читабельное для человека, которое будет полезно при отображении в панели инструментов в GUI среде разработки.
  • small-icon - определяет не обязательный файл изображения, подходящий для среды разработки при отображении в панели инструментов.
  • large-icon - определяет необязательный файл изображения, подходящий для среды разработки при отображении в панели меню.
  • description - определяет описание библиотеки тэга, которое может использовать GUI среда разработки для описания этой библиотеки в панели инструментов или в меню.
  • validator - определяет не обязательный класс, который может быть использован для проверки истинности тэга путем проверки его параметров и даже других тэгов на этой же JSP странице, чтобы убедиться, что автор JSP использует их корректно.
  • listener - определяет не обязательный класс, который реализует класс слушателя для сервлета, созданного из JSP страницы. Класс должен реализовывать один из интерфейсов для слушателей сервлета, например javax.servlet.http.HttpSessionListener.

Тэг <taglib> должен иметь, как минимум, один вложенный элемент <tag>. Смысл в том, что вы вряд ли захотите иметь библиотеку тэга без тэгов. Она не будет полезной.

Сам элемент tag имеет несколько влеженных элементов, некоторые из них вы уже видели раньше в этой главе:

  • name - определяет уникальное имя для этого тэга или действия.
  • tagclass - определяет полностью квалифицированное имя класса, который реализует интерфейс обработчика тэга javax.servlet.jsp.tagext.Tag.
  • teiclass - определяет не обязательный класс дополнительной информации, который содержит информацию для проверки действительности переменных этого тэга. Класс обязан реализовывать интерфейс javax.servlet.jsp.tagext.TagExtraInfo.
  • bodycontent - Тип содержимого, находящегося в теле тэга, допустимы: пустое значение, JSP и tagdependant. Елси указан tagdependant, то содержимое будет передаваться без интерпретаций в обработчик тэга. Это может быть полезно при встраивании других языков, например SQL запросов.
  • displayname - Короткое, понятное человеку имя, которое может быть отображено в GUI среде разработки.
  • small-icon - определяет графический файл, подходящий для среды разработки при оторбажении в панели инструментов.
  • large-icon - определяет графический файл, подходящий для среды разработки при отображении в панели меню.
  • description - определяет дополнительную, не обязательную информацию, специфичную для тэга, и как он может быть использован с другими тэгами. Это выполняется путем предоставления класса, который может применять ограничения. Класс должен быть подклассом одной из реализаций тэга.
  • example - определяет не обязательный пример использования тэга, подходящий для среды разработки при отображении в меню помощи.

Последние два субэлемента тэга <tag> могут сами иметь вложенные элементы.

variable - определяет информацию для переменной скрипта, определенной в этом тэге. Может быть заменено тэгом teiclass и предоставлено классом дополнительной информации тэга.

Вложенные элементы для variable:

  • name-given - определяет имя переменной, как константу
  • name-from-attribute - определяет имя атрибута, который даст имя переменной во время трансляции.
  • variable-class - определяет тип переменной. Значение по умолчанию java.lang.String.
  • declare - должна быть переменная задекларирована или нет. Значение по умолчанию True.
  • scope - область видимости переменной. NESTED, AT_BEGIN или AT_END.
  • attribute - определяет информацию для атрибута, используемого этим произвольным тэгом.

Вложенными элементами для attribute являются:

  • name - определяет имя атрибута.
  • required - определяет является ли атрибут обязательным или нет.
  • rtexprevalue - определяет может или нет атрибут передаваться, как выражение, которое будет вычисляться во время выполнения.
  • type - определяет тип атрибута. Значение по умолчанию - String, что наиболее полезно.
  • description - не обязательное описание атрибута.