某些对象和变量映射总是可用来调用。让我们看看它们:
#ctx : 上下文对象。org.thymeleaf.context.IContext 或 org.thymeleaf.context.IWebContext 的实现,这取决于我们的环境(独立或 Web)。
注意:#vars 和 #root 是同一个对象的同义词,但建议使用 #ctx。
/* * ====================================================================== * 见 org.thymeleaf.context.IContext 类的 javadoc API。 * ====================================================================== */ ${#ctx.locale} ${#ctx.variableNames} /* * ====================================================================== * 见 org.thymeleaf.context.IWebContext 类的 javadoc API。 * ====================================================================== */ ${#ctx.request} ${#ctx.response} ${#ctx.response} ${#ctx.session} ${#ctx.servletContext}
#locale:直接访问与当前请求相关的 java.util.Locale。
${#locale}
在 Web 环境中使用 Thymeleaf 时,我们可以使用一系列的快捷方式来访问请求参数、会话属性和应用属性。
注意:这些不是上下文对象,而是作为变量添加到上下文中的映射,所以我们访问它们不需要 #。在某种程度上,它们扮演着命名空间的角色。
param:用于检索请求参数。${param.foo} 是一个包含 foo 请求参数值的 String[],所以 ${param.foo[0]} 通常会被用来获取第一个值。
/* * ============================================================================ * 参见 org.thymeleaf.context.WebRequestParamsVariablesMap 类的 javadoc API。 * ============================================================================ */ ${param.foo} // 检索一个包含请求参数 'foo' 值的字符串[] 。 ${param.size()} ${param.isEmpty()} ${param.containsKey('foo')}. ...
session:用于检索会话属性。
/* * ====================================================================== * 见 org.thymeleaf.context.WebSessionVariablesMap 类的 javadoc API * ====================================================================== */ ${session.foo} // 检索会话属性'foo'。 ${session.size()} ${session.isEmpty()} ${session.containsKey('foo')}。 ...
application:用于检索应用程序/Servlet上下文属性。
/* * ============================================================================= * 参见 org.thymeleaf.context.WebServletContextVariablesMap 类的 javadoc API * ============================================================================= */ ${application.foo} // 检索ServletContext的属性'foo'。 ${application.size()} ${application.isEmpty()} ${application.containsKey('foo')}。 ...
注意:在访问请求属性(相对于请求参数)时不需要指定命名空间,因为所有的请求属性都会作为变量自动添加到上下文根中。
${myRequestAttribute}
在 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}。 ...