SpringMVC与FreeMarker整合 实现静态化操作

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/天,具体规则查看活动详情Blog Img