package com.github.jknack.handlebars.springmvc; import java.io.IOException; import java.util.Arrays; import java.util.HashMap; import java.util.Map; import com.github.jknack.handlebars.Handlebars; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationContext; import org.springframework.context.MessageSource; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.support.ResourceBundleMessageSource; import com.github.jknack.handlebars.Helper; import com.github.jknack.handlebars.Options; @Configuration public class HandlebarsApp { @Autowired ApplicationContext applicationContext; @Bean public HandlebarsViewResolver viewResolver() { HandlebarsViewResolver viewResolver = new HandlebarsViewResolver(); Helper<Object> helper = new Helper<Object>() { @Override public Object apply(final Object context, final Options options) throws IOException { return "Spring Helper"; } }; viewResolver.registerHelper("spring", helper); viewResolver.setHelperSources(Arrays.asList(HandlebarsApp.class)); Map<String, Helper<?>> helpers = new HashMap<String, Helper<?>>(); helpers.put("setHelper", helper); viewResolver.setHelpers(helpers); // no cache for testing viewResolver.setCache(false); viewResolver.setBindI18nToMessageSource(true); return viewResolver; } @Bean public HandlebarsViewResolver parameterizedHandlebarsViewResolver() { HandlebarsViewResolver viewResolver = new HandlebarsViewResolver(new Handlebars( new SpringTemplateLoader(applicationContext))); // no cache for testing viewResolver.setCache(false); return viewResolver; } @Bean public MessageSource messageSource() { ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource(); messageSource.setBasename("messages"); return messageSource; } @Bean public HandlebarsViewResolver viewResolverWithoutMessageHelper() { return new HandlebarsViewResolver().withoutMessageHelper(); } public static CharSequence helperSource() { return "helper source!"; } }