mustache.js view for spring3
<dependency>
<groupId>com.github.sps.mustache</groupId>
<artifactId>mustache-spring-view</artifactId>
<version>1.1.2</version>
</dependency>
<bean id="viewResolver" class="org.springframework.web.servlet.view.mustache.MustacheViewResolver">
<property name="cache" value="${TEMPLATE_CACHE_ENABLED}" />
<property name="prefix" value="" />
<property name="suffix" value=".html" />
<property name="templateLoader">
<bean class="org.springframework.web.servlet.view.mustache.MustacheTemplateLoader"" />
</property>
</bean>
The default Mustache.Compiler configuration is as follows. You can inject your own custom Compiler as instructed below.
compiler = Mustache.compiler()
.escapeHTML(escapeHTML)
.standardsMode(standardsMode)
.withLoader(templateLoader);
<bean id="messageInterceptor" class="org.springframework.web.servlet.i18n.MustacheMessageInterceptor">
<property name="messageSource" ref="messageSource" />
<property name="localeResolver" ref="localeResolver" />
<!--<property name="messageKey" value="i18n"/> default is 'i18n'-->
<!--<property name="viewResolver" ref="viewResolver"/> normally @Autowired-->
</bean>
<bean id="viewResolver" class="org.springframework.web.servlet.view.mustache.MustacheViewResolver">
<property name="cache" value="${TEMPLATE_CACHE_ENABLED}" />
<property name="prefix" value="" />
<property name="suffix" value=".html" />
<property name="templateLoader" ref="templateLoader"/>
<property name="compiler">
<bean class="your.package.name.CustomMustacheCompiler" factory-method="yourFactoryMethodName">
<constructor-arg ref="templateLoader"/>
</bean>
</property>
</bean>
public class CustomMustacheCompiler {
private CustomMustacheCompiler() {}
public static Mustache.Compiler yourFactoryMethodName(MustacheTemplateLoader templateLoader) {
// customize your compiler as needed
return Mustache.compiler()
.escapeHTML(true)
.standardsMode(false)
.defaultValue("")
.withLoader(templateLoader);
}
}