Skip to main content

Контекст

Контекст пользователя — это любая информация о текущем пользователе приложения.

Использование#

К контексту пользователя существует быстрый доступ из некоторых мест в XML через "решётку" и фигурные скобки:

<input-text id="login" default-value="#{username}"/>

Места применения контекста в XML

МестоОписание
*/[control]/@default-valueЗначение по умолчанию поля ввода.
/query/fields/field/filters/[filter-type]/@default-valueЗначение по умолчанию фильтра выборки.
/query/fields/field/select/@default-valueЗначение по умолчанию поля выборки.
/object/actions/action/in-parameters/param/@default-valueЗначение по умолчанию входящего параметра операции.
/object/actions/action/out-parameters/param/@default-valueЗначение по умолчанию исходящего параметра действия.
*/pre-filters/[filter-type]/@valueЗначение предустановленного фильтра
*/pre-fields/[filter-type]/@valueЗначение предустановленного поля
/access/*/object-access/[filter-type]/@valueЗначение фильтра доступа

В случае, когда значение контекста отсутствует, возвращается null. Если логика приложения не допускает null контекст, можно сделать его обязательным, добавив восклицательный знак в конце:

бязательный контекст
<input-text id="name" default-value="#{firstName!}"/>

Подключение#

Контекст подключается автоматически после интеграции с системой аутентификации Spring Security.

note

Например, в случае интеграции со Spring Security, все поля объекта UserDetails становятся доступны в XML.

Можно сконфигурировать подключение вручную с помощью модульного контекста:

Подключение модульного контекста в Maven
<dependency>  <groupId>net.n2oapp.framework</groupId>  <artifactId>n2o-context</artifactId>  <version>{version}</version></dependency>

Модульный контекст позволяет определять параметры контекста в любом jar модуле и получать их значения по первому требованию. Подключение делается с помощью интерфейса ContextProvider зарегистрированного в качестве Spring бина.

/*** Провайдер одного значения контекста**/public class MyContextProvider    implements RootOneValueContextProvider {
    /**    * @return Значение параметра контекста    **/    @Override    public Object getValue() {        return "myvalue";    }
    /**    * @return Название параметра контекста    **/    @Override    public String getParam() {        return "myparam";    }}