A template engine uses a specific template and the data in a routing context to render a resource into a buffer.

Concrete implementations exist for several well-known template engines.

- `Anything`
  - `Object`
    - `Basic` ...and other supertypes
      - `TemplateEngine`

- `TemplateEngine`
  - `Basic`
    - `Identifiable`
    - `Object`
      - `Anything`

- `TemplateEngine`
  - `HandlebarsTemplateEngine`
  - `JadeTemplateEngine`
  - `MVELTemplateEngine`
  - `ThymeleafTemplateEngine`

Initializer
`TemplateEngine(TemplateEngine unknown)`

Inherited Attributes
Attributes inherited from: `Object` `hash`, `string`

Methods
`isCachingEnabled` | `shared default Boolean isCachingEnabled()` Returns true if the template engine caches template files. If false, then template files are freshly loaded each time they are used.
`render` | `shared default void render(RoutingContext context, String templateFileName, Anything(Throwable|Buffer) handler)` Render the template Parameters: `context` the routing context `templateFileName` the template file name to use `handler` the handler that will be called with a result containing the buffer or a failure.
`render` | `shared default void render(RoutingContext context, String templateDirectory, String templateFileName, Anything(Throwable|Buffer) handler)` Render the template NOTE if you call method directly (i.e. not using TemplateHandler) make sure that templateFileName is sanitized via `io.vertx.ext.web.impl.Utils` Parameters: `context` the routing context `templateDirectory` the template directory to use `templateFileName` the relative template file name to use `handler` the handler that will be called with a result containing the buffer or a failure.

Inherited Methods
Methods inherited from: `Object` `equals`