SpringMVC与FreeMarker整合 实现静态化操作
今天本来打算将目前正在进行的项目进行一个静态化处理
虽然成功了,但是有个小问题目前没有解决——静态化后,用户权限问题,就是说一个用户登录后查看了文章页面,对这个页面进行了静态化,另一个用户登录时访问到的用户名还是之前的。对于这个问题暂时不打算浪费时间了。即使如此,我也把SpringMVC与FreeMarker整合 实现静态化操作的简要方法方法分享给大家做参考吧,还是分步骤吧:
第一:写一个类(工具类)
工具类主要是获得FreeMarkerConfigurer实例
而这个实例是可以通过依赖注入实现的,我们先看看这个工具类的代码
public class FreemarkerToHtml { private static FreeMarkerConfigurer freeMarkerConfigurer; public void setFreeMarkerConfigurer(FreeMarkerConfigurer freeMarkerConfigurer) { FreemarkerToHtml.freeMarkerConfigurer = freeMarkerConfigurer; } public FreeMarkerConfigurer getFreeMarkerConfigurer() { return freeMarkerConfigurer; } /* * 使用 FreemarkerToHtml.process("/article.ftl",yyyy+"_"+MM+"_"+arid, map); */ public static void process(String templateName,String saveName, Map<String,Object> map) throws Exception { Configuration configuration = freeMarkerConfigurer.getConfiguration(); Template template = configuration.getTemplate(templateName); File file = new File(EnumPath.webinf.getClassPath()+EnumPath.arhtmlpath.getClassPath()+saveName+".ftl"); Writer out = new OutputStreamWriter(new FileOutputStream(file), "UTF-8"); template.process(map, out); IOUtils.closeQuietly(out); } }第二,依赖注入获得FreeMarkerConfigurer实例
我们在配置FreeMarker的时候,都配置了如下这个bean的
<bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">详细配置我就不列出了哈
我们在这个配置下面增加一个配置,这个配置,通过依赖注入,实现得到FreeMarkerConfigurer实例,里面的class参数就是我们工具类的类路径
<bean id="FreemarkerToHtml" class="springMVC.NLoveB.utils.FreemarkerToHtml"> <property name="freeMarkerConfigurer" ref="freemarkerConfig"/> </bean>
第三,这一步,我们又回答我们第一步中的工具类中的代码,其中这个process(String templateName,String saveName, Map<String,Object> map)方法就是我们静态化的方法
这个方法的参数依次是,模版的文件名路劲,保存的静态化文件名,数据模型
自此,SpringMVC与FreeMarker整合 实现静态化操作完成
爆款云服务器s6 2核4G 低至0.46/天,具体规则查看活动详情