public class MarkupTemplateModule extends ConfigurableModule<MarkupTemplateModule.Config>
To use it one has to register the module and then render MarkupTemplate
instances.
Instances of MarkupTemplate
can be created using one of the
Groovy.groovyMarkupTemplate(java.util.Map, String, String)
static methods.
By default templates are looked up in the templates
directory of the application root.
So groovyMarkupTemplate("my/template/path.gtpl")
maps to tempaltes/my/template/path.gtpl
in the application root directory.
The template engine can be configured using the template configuration
. In particular, it is possible to configure
things like automatic indentation.
Response content type can be manually specified, i.e. groovyMarkupTemplate("template.gtpl", model, "text/html")
if
not specified will default to text/html
.
import ratpack.groovy.template.MarkupTemplateModule;
import ratpack.guice.Guice;
import ratpack.test.embed.BaseDirBuilder;
import ratpack.test.embed.EmbeddedApp;
import java.nio.file.Path;
import static ratpack.groovy.Groovy.groovyMarkupTemplate;
import static org.junit.Assert.*;
public class Example {
public static void main(String... args) throws Exception {
Path baseDir = BaseDirBuilder.tmpDir().build(builder ->
builder.file("templates/myTemplate.gtpl", "html { body { p(value) } }")
);
EmbeddedApp.of(baseDir, s -> s
.registry(Guice.registry(b -> b.add(MarkupTemplateModule.class)))
.handlers(chain -> chain
.get(ctx -> ctx.render(groovyMarkupTemplate("myTemplate.gtpl", m -> m.put("value", "hello!"))))
)
).test(httpClient -> {
assertEquals("<html><body><p>hello!</p></body></html>", httpClient.get().getBody().getText());
});
}
}
Modifier and Type | Class and Description |
---|---|
static class |
MarkupTemplateModule.Config |
Constructor and Description |
---|
MarkupTemplateModule() |
Modifier and Type | Method and Description |
---|---|
protected void |
configure() |
protected void |
defaultConfig(ServerConfig serverConfig,
MarkupTemplateModule.Config config)
Hook for applying any default configuration to the configuration object created by
ConfigurableModule.createConfig(ServerConfig) . |
configure, createConfig, setConfig
addError, addError, addError, bind, bind, bind, bindConstant, binder, bindInterceptor, bindListener, bindListener, bindScope, configure, convertToTypes, currentStage, getMembersInjector, getMembersInjector, getProvider, getProvider, install, requestInjection, requestStaticInjection, requireBinding, requireBinding
protected void configure()
configure
in class AbstractModule
protected void defaultConfig(ServerConfig serverConfig, MarkupTemplateModule.Config config)
ConfigurableModule
ConfigurableModule.createConfig(ServerConfig)
.
This can be used if it's not possible to apply the configuration in the constructor.
defaultConfig
in class ConfigurableModule<MarkupTemplateModule.Config>
serverConfig
- the application server configconfig
- the config object