freemarker

freemarker

freemarker是一个用Java语言编写的模板引擎,它基于模板来生成文本输出。FreeMarkerWeb容器无关,即在Web运行时,它并不知道ServletHTTP。它不仅可以用作表现层的实现技术,而且还可以用于生成XMLJSPJava 等。

引入freemarker依赖

<dependency>

  <groupId>org.freemarker</groupId>

  <artifactId>freemarker</artifactId>

  <version>2.3.23</version>

</dependency>

 

freemarker原理

模板 + 数据模型 = 输出

对象的访问

Person p  = new Person();
Map root = new HashMap();
root.put(“person”,p);

freemarker.html内容如下:
${person.id}=${person.name}

历遍集合/数组

List<Person> persons = new ArrayList<Person>();

//页面中内容

<#list persons as p>
${p.id}/${p.name}
</#list>

获取当前选代的索引:<br/>
<#list persons as p>
	${p_index}
</#list>

if

逻辑运算符(==   !=   ||   &&)

<html>
<body>
	<#list persons as p>
		<#if p_index%2 != 0 || p_index==0>
			输出一行字
		</#if>
		index:${p_index}|${p.id}:${p.name}<br>
	</#list>
</body>
</html>

else

<html>
<body>
	<#list persons as p>
		<#if p_index%2 != 0 || p_index==0>
			<span style="color:red">
				index:${p_index}|${p.id}:${p.name}<br>
			</span>
		<#else>
			<span style="color:blue">
				index:${p_index}|${p.id}:${p.name}<br>
			</span>
		</#if>
	</#list>
</body>

格式化日期

默认格式
1:date
${cur_time?date}
2:datetime
${cur_time?datetime}
3:time
${cur_time?time}

自定义格式
${cur_time?string("yyyy-MM-dd HH:mm:ss")} 

 null处理

root.put(“val”,null);

解决办法
1:null 变 空串
${val!}     ${val!"这里是空"}
2:为Null时给默认值
${val!“我是默认值"}
3:
<#if curdate ??>
属性不为空
<#else>
属性为空
<#/if>

 引页面

将另一个页面引入本页面时可用以下命令完成

<#include "/include/head.html">

freemaker整合spring

 

添加依赖:
<dependency>
	<groupId>org.springframework</groupId>
	<artifactId>spring-context-support</artifactId>
	<version>4.1.3.RELEASE</version>
</dependency>
<dependency>
	<groupId>org.freemarker</groupId>
	<artifactId>freemarker</artifactId>
	<version>2.3.23</version>
</dependency>


在ApplicationContext.xml中添加如下内容:
<bean id="freemarkerConfig"	class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
	<property name="templateLoaderPath" value="/WEB-INF/freemarker/" />
	<property name="defaultEncoding" value="UTF-8" />
</bean>

代码:
Configuration configuration = freeMarkerConfigurer.getConfiguration();
Template template = configuration.getTemplate("item.ftl");
Map root = new HashMap();
//取商品信息
....
FileWriter out = new FileWriter(new File(HTML_GEN_PATH + id + ".html"));
template.process(root, out);
out.flush();
out.close();

 

更为详细的网页版学习资料,可在上传的资源中下载

 

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值