Брошенный, когда свойство не могло быть записано, устанавливая значение на a ValueExpression.
Пакет javax.el Описание
Обеспечивает API для Объединенного Языка Выражения 2.2 используемый JSP 2.2 и JSF 2.0 технологии.
(ЭЛЬ) Язык Выражения является простым языком, разработанным, чтобы удовлетворить определенные потребности разработчиков веб-приложения. Это в настоящий момент определяется в его собственном документе спецификации в пределах Страниц JavaServer (ТМ) (JSP) 2.2 спецификации, но не имеет никаких зависимостей от любой части JSP 2.2 спецификациями. Это предназначается для общего использования за пределами JSP и спецификаций JSF также.
Этот пакет содержит классы и интерфейсы, которые описывают и определяют программируемый доступ к механизму Языка Выражения. API логически делится следующим образом:
Важная цель ЭЛЬ состоит в том, чтобы гарантировать, что может использоваться во множестве сред. Это должно поэтому обеспечить достаточную гибкость, чтобы адаптироваться к определенным требованиям среды, где это используется.
Класс ELContext то, что соединяет ЭЛЬ с определенной средой, где она используется. Это обеспечивает механизм, через который определяется весь соответствующий контекст для создания или оценки выражения.
Создание ELContext объектами управляют через базовую технологию. Например, в JSP, JspContext.getELContext() метод фабрики используется.
Немного технологий обеспечивает возможность добавить ELContextListener так, чтобы приложения и платформы могли гарантировать, что их собственные объекты контекста присоединены к любому недавно создаваемому ELContext.
В ядре Выражения Язык является понятием выражения, которое анализируется согласно грамматике, определенной Языком Выражения.
Есть два типа выражений, определенных ЭЛЬ: выражения и выражения метода. A ValueExpression такой как "${customer.name}" может использоваться любой в качестве rvalue (возвратите значение, связанное со свойством name из объекта модели customer) или как lvalue (устанавливает значение свойства name из объекта модели customer).
A MethodExpression такой как "${handler.process}" позволяет вызвать метод (process) на определенном объекте модели (handler).
В версии 2.2 любой тип ЭЛЬ выражения может представить вызов метода, такой как ${trader.buy("JAVA")}, где arugments к mothod вызову определяются в выражении.
Все классы выражения расширяют основной class Expression, создание их сериализуемый и то, чтобы вынуждать их реализовать equals() и hashCode(). Morevover, каждый метод на этих классах выражения, который фактически оценивает выражение, получают параметр class ELContext, который обеспечивает контекст, требуемый оценить выражение.
Выражение создается через ExpressionFactory class. Фабрика обеспечивает два метода создания; один для каждого типа выражения поддерживается ЭЛЬ.
Чтобы создать выражение, нужно обеспечить ELContext, строка, представляющая выражение, и ожидаемый тип (ValueExpression) или подпись (MethodExpression). ELContext обеспечивает контекст, необходимый, чтобы проанализировать выражение. Определенно, если выражение использует ЭЛЬ функцию (например ${fn:toUpperCase(customer.name)}) или ЭЛЬ переменная, тогда FunctionMapper и VariableMapper объекты должны быть доступными в пределах ELContext так, чтобы ЭЛЬ функции и ЭЛЬ переменные были должным образом отображены.
Инструменты могут легко получить больше информации о разрешимых объектах модели и их разрешимых свойствах, вызывая метод getFeatureDescriptors на ELResolver. Этот метод представляет объекты типа java.beans.FeatureDescriptor, предоставление всей информации процента по высокоуровневой модели возражает так же как их свойства.
Если ЭЛЬ выражение использует функцию (например ${fn:toUpperCase(customer.name)}), тогда a FunctionMapper объект должен также быть определен в пределах ELContext. FunctionMapper ответственно карте ${prefix:name()} разработайте функции к статическим методам, которые могут выполнить указанные функции.
Точно так же как FunctionMapper обеспечивает гибкий механизм, чтобы добавить функции к ЭЛЬ, VariableMapper обеспечивает гибкий механизм, чтобы поддерживать понятие ЭЛЬ переменных.
ЭЛЬ переменная непосредственно не обращается к объекту модели, который может тогда быть разрешен ELResolver. Вместо этого это обращается к ЭЛЬ выражению. Оценку которого ЭЛЬ выражение дает ЭЛЬ переменной свое значение.
Например, в следующем фрагменте кода
<h:inputText value="#{handler.customer.name}"/>
handler обращается к объекту модели, который может быть разрешен ЭЛЬ Преобразователем.
item ЭЛЬ переменная, потому что она не обращается непосредственно к объекту модели. Вместо этого это обращается к другому ЭЛЬ выражению, а именно, определенный элемент в наборе, упомянутом ЭЛЬ выражением #{model.list}.
Assuming that there are three elements in ${model.list}, this means that for each invocation of <h:inputText>, the following information about item must be preserved in the VariableMapper:
first invocation: item maps to first element in ${model.list} second invocation: item maps to second element in ${model.list} third invocation: item maps to third element in ${model.list}
VariableMapper provides the mechanisms required to allow the mapping of an EL variable to the EL expression from which it gets its value.