上下文
为了处理我们的模版,我们将会创建一个实现了IGTVGController
接口的HomeController
类。如下:
我们第一眼看到的就是上下文的创建。一段Thymeleaf的上下文就是一个实现了org.thymeleaf.context.IContext
接口的对象。上下文应当包含,在变量的映射关系中执行模版引擎需要的所有数据,同时指明了外部化的信息必须用到的地区。
这个接口有一个专门的扩展:org.thymeleaf.context.IWebContext
,用在基于ServletAPI的网络应用里(比如SpringMVC)。
Thymeleaf核心库提供了这些接口里每一个的实现:
org.thymeleaf.context.Context
实现了IContext
接口org.thymeleaf.context.WebContext
实现了IWebContext
接口
如同你在controller的代码里看到的那样,我们使用了WebContext
。实际上,我们不得不这样做,因为ServletContextTemplateResolver
需要一个实现了IWebContext
接口的上下文。
那四个构造器参数中只有三个是必须的,因为如果没有指定地区(尽管你不应当让这种情况发生在实际的应用里),系统里默认的地区将会被使用。
我们可以使用一些专门的表达式,从模版里的WebContext
获取请求参数、请求、会话和应用属性。比如:
${x}
会返回存储在Thymeleaf上下文里的变量x
,或者作为请求属性存储的变量x
。${param.x}
会返回一个称为x
的请求属性(可能多值)。${session.x}
会返回一个称为x
的会话属性。${application.x}
会返回一个称为x
的servlet上下文属性。
Last updated