- springmvc freemarker 动态加载(不用重启tomcat立即生效)
- FreeMarker 判断List不为空
- Cannot expose request attribute 'website' because of an existing model object of the same name 的解决方案
- Java模板引擎 FreeMarker介绍
- FreeMarker入门教程
- FreeMarker基本标签的使用
- FreeMarker基本数据类型
- FreeMarker集合(List、Map)
- FreeMarker自定义指令
- FreeMarker四种变量的用法
- FreeMarker模板包含及名称空间
- freemarker 空值处理
知识点
相关文章
更多最近更新
更多FreeMarker在领悟教程网实战应用
2019-03-07 11:31|来源: 领悟书生
上一节我们整理了FreeMarker与SpringMVC整合,这一节学习在领悟书生教程网中是怎样实现应用freemarker静态化页面(减少数据库查询)的。
这一节的标题我们就叫做FreeMarker在领悟教程网实战应用,需求是这样的,我页面的底部,有“最新文章”和“热门文章”。因为每个页面都有这个显示,每次访问都要查询数据库,这不是太合理,所以在添加文章、修改文章和删除文章的时候,都查询数据库,生成一个jsp页面,然后嵌套在页面中。
定义模板
这个模板很简单,就是定义了一个显示文章的指今,然在的显示最新文章和热门文章的时候调用即可
模板文件源代码:
<#macro showNewArticles articles> <#list articles as article> <li> ${article_index+1}. <a target="_blank" href="/article/${article.id }">${article.title }</a> </li> </#list> </#macro> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <link rel="stylesheet" type="text/css" href="/resources/css/foot.css" /> <div id="footer_area"> <div id="footer_area_content"> <div class="box"> <h3>最近发布</h3> <div class="box_content"> <ol> <@showNewArticles articles=newDESCArticles /> </ol> </div> </div> <div class="box"> <h3>热门文章</h3> <div class="box_content"> <ol> <@showNewArticles articles=viewCountDescArticles /> </ol> </div> </div> <!-- 省略了一部分 --> </div> </div>
Freemarker的服务类
freemarker服务类会调用articleService
完整源代码:
package com.naxsu.service; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.annotation.Resource; import org.springframework.stereotype.Service; import com.naxsu.entity.Article; import com.naxsu.utils.FreemarkerUtil; @Service("freemarkerService") public class FreeMarkerService { @Resource(name="articleService") private ArticleService articleservice; public void getFootPage() { Map<String,Object> root = new HashMap<String,Object>(); List<Article> newDESCArticles = articleservice.getNewDESCArticle(); List<Article> viewCountDescArticles = articleservice.getViewCountDESCArticle(); root.put("newDESCArticles", newDESCArticles); root.put("viewCountDescArticles", viewCountDescArticles); String path = this.getClass().getProtectionDomain() .getCodeSource().getLocation().getPath(); path = path.substring(0,path.indexOf("/WEB-INF")); FreemarkerUtil.getInstance().fprint("foot.ftl", root, path+"/WEB-INF/jsp/template/foot.jsp"); } }
用spring aop实现切面拦截文章的增删改的服务
在增删改文章的时候都会调用freemarkerService,从而生成相应的jsp。FreeMarker与SpringMVC整合在这里不做多说,请看相关的文章。
源代码如下:
<aop:config> <aop:aspect ref="freemarkerService"> <aop:pointcut id="createFootTemplate" expression="execution(* com.naxsu.service.ArticleService.insert*(..))|| execution(* com.naxsu.service.ArticleService.update*(..))|| execution(* com.naxsu.service.ArticleService.delete*(..))"/> <aop:after method="getFootPage" arg-names="id" pointcut-ref="createFootTemplate"/> </aop:aspect> </aop:config>
jsp的嵌入
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ include file="../template/foot.jsp"%>
在项目中应用freemarker就是这么简单,赶快用吧。
本文链接:FreeMarker在领悟教程网实战应用,本文由huangyineng原创,转载请注明出处
相关问答
更多-
求我要自学网 java基础视频教程java进阶案例教程java实战案例课程javaScript[2021-08-09]
网页链接 可以自学 -
dreamweaver实战教程下载地址~~~[2022-02-05]
西东网上有dreamweaver教程。如《Dreamweaver CS4 中文版完全自学教程》光盘/视频教程/PPT/电子书, 《FIF 小组Dreamweaver制作网页视频教程》等, 你过去找找吧。 -
哪里有关于QT实战教程下载[2023-08-01]
推荐你看看老夫子老师的《基于QT平台的手持媒体播放器项目实战(madplay交叉编译、进程通信、移植)》这套视频教程挺不错的,我把下载地址给你http://kuai.xunlei.com/d/xmBrD7gsk8zAUgQAbdb -
ERP 实战教程 金蝶[2022-05-27]
这个东西你可以到金蝶官网去看看啊 应该都有的 或者金蝶论坛 武汉金蝶 http://www.whtaylorsoft.com/ -
哪里能找到freemarker 教程视频?[2022-06-04]
http://v.ku6.com/show/GP-vCiNTcIhCP4TxbMwWxQ...html?ptag=vsogou 这个比较详细的 -
求freemarker 教程[2022-04-19]
http://www.51zxw.net/study.asp?vip=1525340 这里面有所有教程、而且很详细!... -
求学云网何虎老师的NET教程视频:B2C大型电子商务网站项目开发实战视频教程[2024-02-20]
用检查妇科。也就是查白带常规检查。如果你是未婚的话记得跟医生讲,她们通常会问你,有没有男朋友,就算你有也不要告诉给他们听。如果你讲有的话,那你就惨了,他们会选用扩宫器帮你取白带。你讲没有男朋友了,他们就会对你特别小心。 项目有以下这几项: 一、血压、心脏、肺、 二、验血。检查两对半。主要检查肝功能、乙肝表面抗原。 三、白带常规检查主要检查有没有淋病、梅毒、滴虫等。 四、胸部X线检查 -
拳击中文教程,最好有实战教程[2022-04-05]
到上海加华国术馆视频放映厅,那里有各类教学实况。可以去看看,比较清楚 参考资料:上海加华国术馆 www.wusport.cn