freemarker整合spring 的时候应该现在spring的配置文件中加入如下bean
<!-- 配置freemarker -->
<bean id="freeMarkerConfigurer" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
<!-- 默认加载模板的路径 -->
<property name="templateLoaderPath" value="/WEB-INF/ftl/"/>
<!-- 默认字符编码集 -->
<property name="defaultEncoding" value="utf-8"/>
</bean>
@Controller
public class GenHtmlController {
@Autowired
private FreeMarkerConfigurer freeMarkerConfigurer;
@RequestMapping("/genhtml")
@ResponseBody
public String genhtml(){
try {
//1、得到configuration
Configuration configuration = freeMarkerConfigurer.createConfiguration();
//2、得到tmplate
Template template = configuration.getTemplate("hello.ftl");
//3、设置数据
Map data = new HashMap<>();
data.put("hello", "hello spring freemarker");
//4、生成文件的输出路径
Writer out = new FileWriter(new File("G:/out/hello2.html"));
//5、使用模板对象的process方法输出文件。
template.process(data, out);
//6、关闭流
out.close();
} catch (Exception e){
e.printStackTrace();
}
return "ok";
}
}
通过浏览器访问路径则可以得到生成的静态页面hello2.html.