某些对象和变量映射总是可用来调用。让我们看看它们:
#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}。
...