700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Spring整合FreeMarker生成静态页面(静态模板)

Spring整合FreeMarker生成静态页面(静态模板)

时间:2021-03-03 23:09:42

相关推荐

Spring整合FreeMarker生成静态页面(静态模板)

页面静态化介绍

当我们访问类似于商品详情页这种页面,里面的数据都是查询数据库来的,

就是对于这种页面来说,每次用户访问这中页面都需要查询数据库获取动态数据进行展示,而且这种页面的访问量是比较大的,这就对数据库造成了很大的访问压力,并且数据库中的数据变化频率并不高。那我们需要通过什么方法为数据库减压并提高系统运行性能呢?答案就是页面静态化。

页面静态化其实就是将原来的动态网页(例如通过ajax请求动态获取数据库中的数据并展示的网页)改为通过静态化技术生成的静态网页,这样用户在访问网页时,服务器直接给用户响应静态html页面,没有了动态查询数据库的过程。

那么这些静态HTML页面还需要我们自己去编写吗?其实并不需要,我们可以通过专门的页面静态化技术帮我们生成所需的静态HTML页面,例如:Freemarker、thymeleaf等。

1、导入FreeMarker依赖

<dependency><groupId>org.freemarker</groupId><artifactId>freemarker</artifactId><version>2.3.23</version></dependency>

2、在spring的配置文件中配置FreeMarkerConfigurer对象

<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><!--配置生成文件的输出路径--><context:property-placeholder location="classpath:freemarker.properties"/>

3、定义模板

​ 在模板里面使用的注意事项:

​ 1、文本,直接输出的部分

​ 2、注释,即<#–…-->格式不会输出

​ 3、插值(Interpolation):即${…}部分,

​ 将使用数据模型中的部分替代输出

​ 4、FTL指令:FreeMarker指令,和HTML标记类似,名字前加#予以

​ 区分,不会输出

​ Freemarker的模板文件后缀可以任意,一般建议为ftl

4、定义生成模板文件的工具类

参数:模板名称、生成的静态页面的名称、注入到静态页面的数据

public void generateHtml(String templateName,String htmlPageName,Map<String,Object> dataMap){Configuration configuration = freeMarkerConfigurer.getConfiguration();Writer out = null;try {// 加载模版文件Template template = configuration.getTemplate(templateName);// 生成数据File docFile = new File(outputpath + "\\" + htmlPageName);out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(docFile)));// 输出文件template.process(dataMap, out);} catch (Exception e) {e.printStackTrace();} finally {try {if (null != out) {out.flush();}} catch (Exception e2) {e2.printStackTrace();}}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。