В этом приложении перечислены изменения в Спецификации JavaServer Pages.
Это приложение является ненормативным.
Это окончательная версия, одобренная JCP Executive Comittee; документ был обновлён для того, чтобы отразить этот статус. Все полосы изменений/change bars были переустановлены.
jsp:id
Был добавлен новый механизм, позволяющий нуждающимся JSP-контейнерам
предоставлять расширенную информацию об ошибках времени трансляции из классов TagLibraryValidator
.
Запись
TagLibraryValidator.validate()
была слегка модифицирована и был добавлен новый класс
ValidationMessage
. Эти объекты действуют через новый атрибут jsp:id
, который по
выбору поддерживается JSP-контейнером и представляется только через вид XML страницы JSP. Были
затронуты: Глава JSP.5 (в основном Раздел JSP.5.3.13), Глава JSP.7 (Раздел JSP.7.5.1.2) и Глава
JSP.10 (Раздел JSP.10.5.5).
height
& width
стали rtexprs
. Был затронут
Раздел JSP.4.7.short
и Short
и
откорректирована конверсия для char
и
Character
в Таблице JSP.2-2.doStartTag()
для Tag, IterationTag
и BodyTag. PFD2 некорректно указывал, что "emtpy/пустые" тэги могут
возвращать только SKIP_BODY
; корректное утверждение: тэги, чьё body-content - "empty"
,
могут возвращать только SKIP_BODY
.Мандатные интерпретации атрибута
"id"
в Разделе JSP 2.13.3 (что id
представляет уникальные id
в
пределах страницы)
и атрибута "scope"
в Разделе JSP 2.13.4 (касающиеся области видимости
вводимого значения) не форсировались большинством (возможно, всеми?)
контейнерами и были несовместимы с распространённой практикой разработки
библиотек специальных тэгов. Именно эти разделы интерпретировались как
локализованные утверждения о стандартной акции jsp:useBean
. Это было сделано
недвусмысленным, и эти разделы были перемещены в Главу
4, что отразить данные изменения. Были изменены Разделы JSP.2.13.3 и JSP.2.13.4
и Глава 4.
afresh
через вызовы new()
, но это требует произнесения/spelling, как только вводится
пулинг/pooling обработчика тэга. Это разъяснение действует для Раздела
JSP.10.1.Несколько разъяснений к Главе 5.
<?xml ... ?>
не требуется (как указано в XML spec).Разъяснено, что автор библиотеки тэгов может указать в комментариях, что
обработчик тэга может показывать на этапе прогона только некоторый поднабор
информации, описанной через класс реализации обработчика тэга. Это применяется
для специализированных реализаций известных библиотек тэгов, таких как
стандартная библиотека тэгов JSP. Это разъяснение повлияло на описание элемента tag
в Разделе JSP.7.4 и на описание Tag.setParent()
и
TagSupport.findAncestorWithClass()
. Удалён последний параграф в Разделе JSP.7.3.9;
у нас нет в планах удалять хорошо известный URI-механизм.
В целом "прочищено" описание вычисления отображения taglib
между URI и путём
ресурса TLD; предыдущая версия была дебильной.
Разъяснено правильное использование и роль блок-конструкций в скриптлетах и вложенных акциях. Это незначительно изменило Разделы JSP.2.3.3, JSP.6.4, JSP.6.4.4 и JSP.10.5.9.
errorPages
должны быть JSP-страницами, они
могут также быть static-объектами. Изменена Таблица JSP.2-1.include
и для акций jsp:include
и jsp:forward
. Изменены Разделы JSP.2.2.1, JSP.2.10.4, JSP.4.4
и JSP.4.5<type>
в <attribute>
в файле TLD должен соответствовать ему же в свойстве
лежащего в его основе компонента JavaBean.ClassLoader.getResource()
при получении данных от класса TagLi-braryValidator
.Change bars/полосы изменений используются в почти всех главах для обозначения изменений между PFD 1b и PFD 2. Исключение - главы 9 и 10, которые автоматически генерируются из Java-источников и не имеют полос изменений. Большинство изменений - семантические, но некоторые из них - редакторские поправки.
Дескриптор Библиотеки Тэгов/Tag Library Descriptor (TLD)
был расширен описательной информацией для пользователей библиотеки тэгов.
Конкретнее, TLD можно теперь непосредственно вставить (например, используя
таблицу стилей XSLT) в документ конечного пользователя. Был добавлен новый
элемент <example>
в качестве необязательного субэлемента в <tag>
.
Существующий элемент <description>
был сделан верным необязательным
субэлементом в <variable>
, <attribute>
и в
<validator>
.
Были изменены Раздел JSP.7.4 и Приложение JSP.C. ОТД TLD 1, и Схемы/Schemas также были изменены.
Этот механизм, используемый для предоставления в TLD информации о версии, был изменён.
В PFD версия кодировалась в пространстве имён. В PFD2 не предполагается изменять
пространство имён, если только это не изменения несовместимости, и версия
кодируется в элементе <jsp-version>
, который теперь является мандатным.
Новый URI для пространства имён:
"http://java.sun.com/JSP/TagLibraryDescriptor".
Были изменены Глава JSP.7 и Приложение JSP.C.
Object
Теперь можно назначать строковые литералы атрибуту, определённому как имеющий
тип Object
, а также свойству типа Object
. Все верные конвертации типов описаны в
Разделе JSP.2.13.2 и используются по ссылке в семантике <jsp:setProperty>
.
Мы дали разъяснение по верным именам для префиксов, используемых в директивах taglib
,
именам элементов, используемых в акциях, и именам атрибутов.
В спецификации JSP 1.1 различаются пустые/empty и непустые/non-empty акции, хотя лучше было бы дать описание. К сожалению, эскиз/проект JSP 1.2 PFD1 не улучшил это описание. Этот проект улучшил описание, указав точнее, какие методы при этом вызываются. Были изменены Главы 2, 7 и 10.
flush
в директиве include
в
Разделе JSP.5.2.4.jsp:cdata
изменено на
jsp:text
, поскольку его семантика очень похожа на элемент text
в XSLT.jsp:root
.DOCTYPE
.include
в XML-просмотре страницы JSP.xmlns
для директив taglib
,
и исправлено Приложение JSP.B.Мы разъяснили также несколько других несоответствий и ошибок.
DOCTYPE
необходим и каково его значение. Значение не изменилось.flush
акции include
, в Разделе JSP.4.4.<jsp:param>
может появляться только
внутри <jsp:forward>
, <jsp:in-clude>
и <jsp:params>
.<jsp:params>
и
<jsp:fallback>
могут появляться только внутри <jsp:plugin>
.doStartTag()
в обработчиках
тэгов, которые (обраб.) реализуют интерфейс BodyTag
. Корректными значениями
являются SKIP_BODY
,
EVAL_BODY_INCLUDE
и EVAL_BODY_BUFFER
. В Разделе это теперь указывается.PFD 1b является наброском, имеющим в основном изменения форматирования и минимум
редакционных поправок. Этот проект показан только для того, чтобы легче было
коррелировать изменения между последними и более ранними проектами.
Полосы изменений используются для обозначения изменений от PFD 1 к PFD 1b.
Следующие изменения появились после версии Public Draft 1 в версии
Proposed Final Draft
спецификации JSP 1.2.
resetCustomAttributes()
.JspException
для поддержки rootCause
(параллельно с ServletException
).PageContext.handleException(Throwable)
.TryCatchFinally
для лучшего контроля над
исключениями в обработчиках тэгов.pageEncoding
добавлен к директиве page.TagValidatorInfo
.top
и included
в JSP.java.beans.Beans.instantiate()
.<uri>
в TLD это URL на что-либо.
TagLibraryValidator
.response.getWriter()
.include
перемещена обратно в Главу JSP.2.javax.servlet.jsp.tagext.PageInfo
переименован в javax.servlet.jsp.tagext.Page-Data
(для соответствия существующему TagData
).TagLibraryInformation
в TLD путём
добавления нового элемента <validator>
,
переименования <validatorclass>
в <validator-class>
, для
соответствия, и добавления
<init-param>
как в дескрипторе Servlet web.xml.TagLibraryInfo
.
Добавлены String-аргументы prefix
и uri
в метод validate()
.<tag-class>
,
<tei-class>
, <tlib-version
, <jsp-version>
, <short-name>
и <body-content>
. <info>
был переименован в <description>
.Следующие изменения появились между JSP 1.1 и JSP 1.2 Public Draft 1.
Мы создали новый ненормативный документ "Using JSP Technology/Использование Технологии JSP". Этот документ ещё обновляется до JSP 1.2 и Servlet 2.3. Мы переместили в этот документ следующее:
jsp:include
может теперь указывать "flush='false'".PropertyEditor.setAsText()
может теперь использоваться для конвертации из
строкового литерального значения атрибута.ValidatorClass
и JspPage
- для проверки относительно библиотек
тэгов.IteratorTag
- для поддержки итерации без BodyContent
.
Добавлены две новые константы
(EVAL_BODY_BUFFERED
и EVAL_BODY_AGAIN
), чтобы легче документировать работу
протокола тэга; они были разработаны так, чтобы старые обработчики тэгов
продолжали работать без изменений, но использовать старое имя для константы -
EVAL_BODY_TAG
- теперь не рекомендуется.TagExtraInfo
в самых обычных ситуациях.resetCustomAttributes()
добавлен к интерфейсу Tag.JSP 1.2 базируется на Servlet 2.3, точнее: JSP 1.2 базируется на платформе Java 2.
Спецификация JSP 1.1 создана на основе спецификации JSP 1.0. Следующие изменения были внесены между окончательным вариантом спецификации JSP 1.0 и окончательны вариантом спецификации JSP 1.1.
uri
в директивах taglib
.flush
является теперь мандатным атрибутом в jsp:include
, и единственным
верным значением является "true".jsp:include
и jsp:forward
.pushBody()
и popBody()
добавлены к PageContext
.JspException
и JspTagException
.jsp:plugin
больше не может быть реализован простой посылкой содержимого jsp:fallback
клиенту.