spring要与freemarker整合的话,需要两个包,一个是freemarker的jar包,另一个是spriing-context-support的Jar包,需要在taotao-item-web工程中确保对两个包的依赖,如下所示。
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
</dependency>
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
</dependency>
我们的taotao-item-web工程已经添加过对这两个包的依赖了,因此我们不必关心这步了。
下面我们需要在taotao-item-web工程的spriingmvc.xml文件中添加关于freemarker的配置,如下图所示。
添加的配置如下:
<!-- freemarker的配置 -->
<bean id="freeMarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
<property name="templateLoaderPath" value="/WEB-INF/ftl"/>
<property name="defaultEncoding" value="utf-8"/>
</bean>
下面写一个Controller类,如下图所示。
Controller代码如下:
package com.taotao.item.controller;
import java.io.File;
import java.io.FileWriter;
import java.io.Writer;
import java.util.HashMap;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer;
import freemarker.template.Configuration;
import freemarker.template.Template;
@Controller
public class HtmlGenController {
@Autowired
private FreeMarkerConfigurer freeMarkerConfigurer;
@RequestMapping("genhtml")
@ResponseBody
public String genHtml() throws Exception{
//生成静态页面
Configuration configuration = freeMarkerConfigurer.getConfiguration();
Template template = configuration.getTemplate("hello.ftl");
Map data = new HashMap<>();
data.put("hello", "spring freemarker test");
Writer out = new FileWriter(new File("E:/freemarker/out/test.html"));
template.process(data, out);
out.close();
//返回结果
return "OK";
}
}
写完了代码,现在我们测试一下该方法是否能成功,我们先启动各个服务(zookeeper服务、image服务、solr服务、redis服务、activemq服务),然后依次启动taotao-manager、taotao-content、taotao-search、taotao-manager-web、taotao-portal-web、 taotao-search-web、taotao-item-web工程。启动完后,我们在地址栏输入http://localhost:8086/genhtml.html并回车,即可看到页面输出"OK",如下图所示。
我们到E盘的freemarker/out目录下查看生成的test.html,双击它在浏览器中查看,可以看到"spriing freemarker test"。
这就是freemarker与spring的简单结合