Оказывается, я исключил *test.ts* in my
tsconfig.json per the TypeScript example, which I guess meant that
ts-jest` не собирал их. После удаления этого исключения все сработало. Привет Яннику Миусу за помощь в решении этой проблемы.
Вы ответили на вопрос сами - он объединен. См. учебное руководство по тегу для того, что реализовать в реализациях Java, вместе со страницей, связанной оттуда, содержа последовательность вызова:
ATag t = new ATag();
t.setPageContext(...);
t.setParent(...);
t.setAttribute1(value1);
t.setAttribute2(value2);
t.doStartTag();
t.doEndTag();
t.release();
Таким образом, повторно инициализируйте свой экземпляр тега в doEndTag (), поскольку API требует. (измененный с комментария Julien Kronegg, спасибо)
Обратите внимание, что объединение, вероятно, является контейнерным зависимым, но хорошо законный (и, из-за установки API, вероятно, сделанной везде).
таким образом, ответ: тег объединен в волшебную землю пула и снова используется между выполнением. спецификация тега говорит:
"Неуказанные атрибуты/свойства не должны быть установлены (использование метода установщика)".
Наблюдение за Tomcat 6 предполагает, что release () вызывается только при завершении работы контейнера. Члены экземпляра обработчика тегов должны очищать состояние экземпляра в doEndTag (). Из api doc:
«Все состояния экземпляра, связанные с этим экземпляром, должны быть сброшены».
Краткий ответ: Вы не должны сами писать атрибутные свойства. Поступая так, вы возьмете на себя ответственность за очистку состояния.
Для более подробного ответа, спецификация JSP 2.0 диктует следующее (стр. 2-51):
Эти три точки вместе гарантируют, что свойства атрибута всегда правильно инициализируются, при этом сохраняя значения по умолчанию (определенные в конструкторе или объявлении свойств). В свою очередь, он работает только в предположении, что только контейнер управляет свойствами атрибута (вызывая сеттеры).
Для полноты:
release ()
не следует использовать для сброса внутреннего состояния между вызовами обработчика тега. Он гарантированно вызывается только перед сборкой мусора и должен использоваться для освобождения долгосрочных ресурсов. doStartTag ()
, будьте осторожны, чтобы не перезаписать атрибуты, потому что в этот момент установщики уже были вызваны контейнером. doEndTag ()
должен быть безопасным для использования для инициализации, потому что теги никогда не должны использоваться повторно в случае исключения (см. Стр. 2-54 [2])