Оглавление
Некоторые объекты и переменные всегда доступны для вызова. Давайте посмотрим на них:
Базовые объекты
#ctx: объект контекста. Реализация org.thymeleaf.context.IContext или org.thymeleaf.context.IWebContext в зависимости от нашей среды (standalone или web).
Примечание #vars и #root являются синонимами для одного и того же объекта, но рекомендуется использовать #ctx.
#locale: прямой доступ к java.util.Locale, связанный с текущим запросом.
Пространства имен веб-контекста для атрибутов request/session и т. д.
При использовании Thymeleaf в веб-среде мы можем использовать ряд ярлыков для доступа к параметрам запроса, атрибутам сеанса и атрибутам приложения:
Обратите внимание, что это не объекты контекста, а map, добавленные в контекст как переменные, поэтому мы обращаемся к ним без #. В некотором роде они действуют как пространства имен.
param: для получения параметров запроса. ${param.foo} является String[] со значениями параметра запроса foo, поэтому ${param.foo[0]} обычно используется для получения первого значения.
session: для получения атрибутов сеанса.
application: для извлечения атрибутов контекста приложения/сервлета.
Обратите внимание: нет необходимости указывать пространство имен для доступа к атрибутам request (в отличие от параметров request), поскольку все атрибуты request автоматически добавляются в контекст как переменные в корне контекста:
Объекты веб-контекста
Внутри веб-среды есть также прямой доступ к следующим объектам (обратите внимание, что это объекты, а не maps/namespaces):
#request: прямой доступ к объекту javax.servlet.http.HttpServletRequest, связанному с текущим запросом.
#session: прямой доступ к объекту javax.servlet.http.HttpSession, связанному с текущим запросом.
#servletContext: прямой доступ к объекту javax.servlet.ServletContext, связанному с текущим запросом.
18 Приложение A: Основные выражения
Некоторые объекты и переменные всегда доступны для вызова. Давайте посмотрим на них:
Базовые объекты
#ctx: объект контекста. Реализация org.thymeleaf.context.IContext или org.thymeleaf.context.IWebContext в зависимости от нашей среды (standalone или web).
Примечание #vars и #root являются синонимами для одного и того же объекта, но рекомендуется использовать #ctx.
/* * ============================== * См. Javadoc API для класса org.thymeleaf.context.IContext * ============================== */ ${#ctx.locale} ${#ctx.variableNames} /* * ============================== * См. Javadoc API для класса org.thymeleaf.context.IWebContext * ============================== */ ${#ctx.request} ${#ctx.response} ${#ctx.session} ${#ctx.servletContext}
#locale: прямой доступ к java.util.Locale, связанный с текущим запросом.
${#locale}
Пространства имен веб-контекста для атрибутов request/session и т. д.
При использовании Thymeleaf в веб-среде мы можем использовать ряд ярлыков для доступа к параметрам запроса, атрибутам сеанса и атрибутам приложения:
Обратите внимание, что это не объекты контекста, а map, добавленные в контекст как переменные, поэтому мы обращаемся к ним без #. В некотором роде они действуют как пространства имен.
param: для получения параметров запроса. ${param.foo} является String[] со значениями параметра запроса foo, поэтому ${param.foo[0]} обычно используется для получения первого значения.
/* * ============================== * См. Javadoc API для класса org.thymeleaf.context.WebRequestParamsVariablesMap * ============================== */ ${param.foo} // Возвращает строку [] со значениями параметра запроса 'foo' ${param.size()} ${param.isEmpty()} ${param.containsKey('foo')}
session: для получения атрибутов сеанса.
/* * ============================== * См. Javadoc API для класса org.thymeleaf.context.WebSessionVariablesMap * ============================== */ ${session.foo} // Возвращает сеанс atttribute 'foo' ${session.size()} ${session.isEmpty()} ${session.containsKey('foo')}
application: для извлечения атрибутов контекста приложения/сервлета.
/* * ============================== * См. Javadoc API для класса org.thymeleaf.context.WebServletContextVariablesMap * ============================== */ ${application.foo} // Получает ServletContext аттрибут 'foo' ${application.size()} ${application.isEmpty()} ${application.containsKey('foo')}
Обратите внимание: нет необходимости указывать пространство имен для доступа к атрибутам request (в отличие от параметров request), поскольку все атрибуты request автоматически добавляются в контекст как переменные в корне контекста:
${myRequestAttribute}
Объекты веб-контекста
Внутри веб-среды есть также прямой доступ к следующим объектам (обратите внимание, что это объекты, а не maps/namespaces):
#request: прямой доступ к объекту javax.servlet.http.HttpServletRequest, связанному с текущим запросом.
${#request.getAttribute('foo')} ${#request.getParameter('foo')} ${#request.getContextPath()} ${#request.getRequestName()}
#session: прямой доступ к объекту javax.servlet.http.HttpSession, связанному с текущим запросом.
${#session.getAttribute('foo')} ${#session.id} ${#session.lastAccessedTime}
#servletContext: прямой доступ к объекту javax.servlet.ServletContext, связанному с текущим запросом.
${#servletContext.getAttribute('foo')} ${#servletContext.contextPath}
