public abstract class AbstractFreemarkerMultiContentBuilder<MYSELF extends AbstractFreemarkerMultiContentBuilder<MYSELF,P>,P> extends AbstractFreemarkerBuilder<MYSELF,P> implements VariantBuilder<MYSELF>
buildContext, myself
parent
Modifier | Constructor and Description |
---|---|
protected |
AbstractFreemarkerMultiContentBuilder(Class<?> selfType,
P parent,
BuildContext buildContext) |
Modifier and Type | Method and Description |
---|---|
VariantResolver |
buildVariant()
Instantiates and configures the variant resolution based on previously
defined variants.
|
MYSELF |
variant(Variant variant,
String extension)
Registers a custom variant with its extension.
|
build, buildAdapter, buildDetector, buildResolver, buildResolvers, classLoader, classpath, configuration, configuration, detector, file, mergeConfiguration, resolver, resolverAdapter, string
and
protected AbstractFreemarkerMultiContentBuilder(Class<?> selfType, P parent, BuildContext buildContext)
public MYSELF variant(Variant variant, String extension)
VariantBuilder
.variant(EmailVariant.HTML, "html.ftl") .variant(EmailVariant.TEXT, "txt.ftl")And Thymeleaf is configured that way:
.variant(EmailVariant.HTML, "html") .variant(EmailVariant.TEXT, "txt")Then when you send an email using templates:
messagingService.send(new Email() // use default predefined variants (EmailVariant.TEXT and // EmailVariant.HTML) .content(new MultiTemplateContent("simple", new SimpleBean("foo", 42))));You can either use different template files:
Registering your custom variant like this:
// for Freemarker .variant(MyVariant, "foo") // for Thymeleaf .variant(MyVariant, "bar")You can now use your own variant (your own extensions) for loading template files independently of the template parser.
messagingService.send(new Email() // use your custom variant .content(new MultiTemplateContent("simple", new SimpleBean("foo", 42), EmailVariant.TEXT, MyVariant, EmailVariant.HTML)));The system will load any template file with ".foo" or ".bar" extensions if they exist.
variant
in interface VariantBuilder<MYSELF extends AbstractFreemarkerMultiContentBuilder<MYSELF,P>>
variant
- the variant (may be a enum like EmailVariant
)extension
- the extension that corresponds to the variantpublic VariantResolver buildVariant()
VariantBuilder
buildVariant
in interface VariantBuilder<MYSELF extends AbstractFreemarkerMultiContentBuilder<MYSELF,P>>
Copyright © 2021. All rights reserved.