Оглавление
Некоторые объекты и переменные всегда доступны для вызова. Давайте посмотрим на них:
Базовые объекты
#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}