Thymeleaf 表达式基本对象
始终可以调用某些对象和变量映射。我们来看看他们:
基础对象
- #ctx:上下文对象。实施org.thymeleaf.context.IContext或org.thymeleaf.context.IWebContext依赖于我们的环境(独立或Web)。
注意#vars并且#root是同一对象的同义词,但#ctx建议使用。
/* * ====================================================================== * See javadoc API for class org.thymeleaf.context.IContext * ====================================================================== */ ${#ctx.locale} ${#ctx.variableNames} /* * ====================================================================== * See javadoc API for class org.thymeleaf.context.IWebContext * ====================================================================== */ ${#ctx.request} ${#ctx.response} ${#ctx.session} ${#ctx.servletContext}
- #locale:直接访问java.util.Locale与当前请求相关联的内容。
${#locale}
请求/会话属性的Web上下文命名空间等。
在Web环境中使用Thymeleaf时,我们可以使用一系列快捷方式来访问请求参数,会话属性和应用程序属性:
请注意,这些不是上下文对象,而是作为变量添加到上下文中的映射,因此我们不使用它们#。在某种程度上,它们充当命名空间。
- param:用于检索请求参数。${param.foo}是一个String[]带有foo请求参数值的,因此${param.foo[0]}通常用于获取第一个值。
/*
* ============================================================================
* See javadoc API for class org.thymeleaf.context.WebRequestParamsVariablesMap
* ============================================================================
*/
${param.foo} // Retrieves a String[] with the values of request parameter 'foo'
${param.size()}
${param.isEmpty()}
${param.containsKey('foo')}
...
- session:用于检索会话属性。
/* * ====================================================================== * See javadoc API for class org.thymeleaf.context.WebSessionVariablesMap * ====================================================================== */ ${session.foo} // Retrieves the session atttribute 'foo' ${session.size()} ${session.isEmpty()} ${session.containsKey('foo')} ...
- application:用于检索应用程序/ servlet上下文属性。
/* * ============================================================================= * See javadoc API for class org.thymeleaf.context.WebServletContextVariablesMap * ============================================================================= */ ${application.foo} // Retrieves the ServletContext atttribute 'foo' ${application.size()} ${application.isEmpty()} ${application.containsKey('foo')} ...
请注意,不需要为访问请求属性(而不是请求参数)指定名称空间,因为所有请求属性都会自动作为上下文根中的变量添加到上下文中:
${myRequestAttribute}
Web上下文对象
在Web环境中,还可以直接访问以下对象(请注意这些是对象,而不是映射/命名空间):
- #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} ...
执行信息#execInfo:表达式对象,提供有关在Thymeleaf标准表达式中处理的模板的有用信息。/* * ============================================== ...