附录A:表达式基本对象 解耦模板逻辑 附录B:表达式实用程序对象 始终可以调用某些对象和变量映射。我们来看看他们: 基础对象 #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} ... 解耦模板逻辑 附录B:表达式实用程序对象