网页静态化 FreeMarker

FreeMarker模板的使用

1.获取简单数据

使用EL表达式,${param}直接获取定义在freemarker中的简单数据

2.获取包装数据类型

${user.uName}直接获取定义在freemarker中包装数据类型数据

3.获取集合/数组数据类型

例子: List<User> userList=new ArrayList<User>();
<#list userList as user>
   ${user.uName}
</#list>

4.获取当前迭代的索引

List<User> userList=new ArrayList<User>()
<#list userList as user>
   ${user_index}
</#list>

5.逻辑判断

<#if 判断条件>
  <#else>
</#if>

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

6.日期类型格式化

1:date类型
${currTime?date}

2:datetime类型
${currTime?datetime}

3:time类型
${currTime?time}

4:自定义类型
${currTime?string("yyyy-MM-dd HH:mm:ss")}  

7.处理空值(null)

对于需要放入freemarker中的数据如果存在是null(空值)的情况

1.将空值变成空串
${val!}           //其实这里${val!"我是空串"}

2.采用默认值代替空值
${val!"w我只默认值"}

3.通过条件判断,动态输出
<#if currTime ??>
	当前日期:${currTime?string("yyyy/MM/dd HH:mm:ss")}
	<#else>
	currrTime属性为null
</#if>

8.引入其他页面到本页面

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

FreeMarker和Spring框架的整合

1.引入freemarker的依赖

<!--freemarker的依赖-->
<dependency>
    <groupId>org.freemarker</groupId>
    <artifactId>freemarker</artifactId>
    <version>2.3.28</version>
</dependency>

<!-- 需要包含Spring上下文的支持 -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context-support</artifactId>
    <version>4.1.3.RELEASE</version>
</dependency>

2.在spring中配置freemarker

<!--freemarker for generator static page -->
<bean name="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
    <property name="templateLoaderPath" value="/WEB-INF/ftl/" />
    <property name="defaultEncoding" value="UTF-8" />
</bean>

3.freemarker的使用

	@Test
	public void testFreemarker() throws IOException, TemplateException {
		
		//freemarker proj no need to depend on web container,so that you can build a java file to run it
		
		//create configuration object for the freemarker
		Configuration config=new Configuration(Configuration.getVersion());
		//tould the configuration where is the ftl template files
		config.setDirectoryForTemplateLoading(new File("D:\\Myself\\ftl"));
		//set encoding 
		config.setDefaultEncoding("UTF-8");
		//specify the file name of the template file
		Template template = config.getTemplate("first.ftl");
		//create the template file's data list
		Map dataList=new HashMap<>();
		dataList.put("firstTitle", "FirstFreemarker");
		dataList.put("welcome", "Hello Freemarker");
		
		//create a write object to specify file path for the generated file
		Writer writer=new FileWriter(new File("D:\\Myself\\Html\\hello.html"));
		
		//call the template object process function and to params is need
		template.process(dataList, writer);
		
		//flush the data steam and close writer steam
		writer.flush();
		writer.close();
	}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值