FreeMarker
FreeMarker 是一款模板引擎
: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具。 它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。
模板编写为FreeMarker Template Language (FTL)。它是简单的,专用的语言, 不是 像PHP那样成熟的编程语言。 那就意味着要准备数据在真实编程语言中来显示,比如数据库查询和业务运算, 之后模板显示已经准备好的数据。在模板中,你可以专注于如何展现数据, 而在模板之外可以专注于要展示什么数据。
举例
<div class="rightArea">
<#if dto.first?exists>
<div class="shopList_top clearfix">
<#list dto.first as deal>
<div class="shop_item">
<div class="shop_img">
<a href="${ctx}/item/${deal.skuId}"><img src="${helper.getDealImageUrlForIndexDeal1List(deal)}" alt=""></a>
</div>
<h3>${deal.dealTitle}</h3>
<p><@common.formatPrice deal.dealPrice/></p>
<#--<p>${deal.dealPrice}</p>-->
</div>
</#list>
</div>
</#if>
如上代码示例,其中用到了FTL的语法规则,使用${XXX}
进行model的数据访问,也可以使用model中的数值的方法,如设计一个Helper类进行辅助,调用对应的方法。
Helper辅助类
设置一个Helper的Interceptor,对每一个Controller都生成一个对应的Helper的Bean,放到ModelAndView中去,供前端代码使用。