2013-11-16 2 views
1

Просто в надежде прояснить:Инстанцирования: <jsp:useBean> против нового ключевого слова

На странице JSP, было бы правильнее сказать, что <jsp:useBean> выполняет ту же функцию, что и new ключевого слова, используемого в скриптлете?

Я понимаю некоторые преимущества стандартных действий, просто убедившись, что я уверен в фундаментальных принципах.

(Увидел аналогичный вопрос здесь: use of <jsp:useBean> tag, но не смог найти четкого ответа).

Спасибо, Джефф

ответ

2

Не совсем, useBean первый ищет боб с заданным идентификатором, но если его нет в объеме, определенном, тогда будет создана.

От Oracle's documentation:

СПЯ: useBean элемент заявляет, что страница будет использовать компонент, который хранящийся внутри и доступный из указанной области, которая может быть приложения, сессия, запрос или страниц , Если такой компонент не существует, оператор создает компонент и сохраняет его как атрибут объекта (см. Использование объектов области видимости).

Таким образом, вам не гарантируется новый объект, если он уже существует в вашем приложении.

+0

Спасибо, очень ясно. Правильно ли, что экземпляр компонента может быть доступен как не только атрибут какой-либо области видимости, но также как локальная переменная в '_jspService()'? –

+1

Насколько я помню, они доступны для метода '_jspService()' через объект PageContext, хотя не 100% от того, как они разбираются. – anotherdave