freemarker 模版简介 if指令

来源:互联网 发布:淘宝女士沙滩鞋 编辑:程序博客网 时间:2024/05/17 15:59

简介:

1.${expression}  :有点像JSP中的el表达式,但是在freemarker中这个不叫el表达式,功能上大致一样,它将会输出真实的值来替换花括号里的表达式,向这样的表达式(指的是在freemarker中)这样的表达式被称为插值.

2.Comments注释:freemarker的注释其实和html的注释是差不多的这个是html的注释(<!---->),那么freemarker的注释就是将那个感叹号换成了#号也就是<#--和-->来分隔任何介于这两个分隔符之间的内容将都会被freemarker忽略,不会输出.

原文:http://blog.csdn.net/yhc13429826359/article/details/9130503

3.FTL标签(Freemarker模版语言的标签)和HTML有点相似之处,就是标签都是成对出现的(但是这个在html中不是绝对的),这些标签的前缀一般以#开头,写过自定义JSP标签的就很熟悉什么是前缀,在以后的高级中将会碰到以@号前缀开头的标签,这个就是freemarker的用户自定义标签了,前缀以示区分.


freemarker有很多指令,在这里就只说其中3个指令最常用的,其实这个文章完全是参照freemarker官方文档写的,只不过将叙述直接编程了代码.

在这里给大家推荐一个工具就是Jboos Tools有一个freemarker IDE 有语法提示和检查功能,可以加快开发效率和速度,在运行前就能找到错误值所在.


项目结构图:



Java类 Test.java

package org.freemarker.test;import java.io.File;import java.io.IOException;import java.io.OutputStreamWriter;import java.io.Writer;import java.util.HashMap;import java.util.Map;import freemarker.template.Configuration;import freemarker.template.DefaultObjectWrapper;import freemarker.template.Template;import freemarker.template.TemplateException;public class Test {public static void main(String[] args) throws IOException,TemplateException {Configuration cfg = new Configuration();// 指定模板文件从何处加载的数据源,这里设置成一个文件目录。cfg.setDirectoryForTemplateLoading(new File("./template"));// 指定模板如何检索数据模型,这是一个高级的主题了…// 但先可以这么来用:cfg.setObjectWrapper(new DefaultObjectWrapper());// 创建根哈希表Map<String,Object> root = new HashMap<String,Object>();// 在根中放入字符串"username"root.put("username", "admin");//当前是星期几0-6root.put("today", 0);//系统异常数量root.put("errors",12 );// 获取模版Template temp = cfg.getTemplate("if.ftl");Writer out = new OutputStreamWriter(System.out);temp.process(root, out);out.flush();out.close();}}

模版 if.ftl

   <#--     在这里我们告诉freemarker只有当username等于admin的时候才显示提示信息,当  if后面的条件是false值时,if标签内部非内容将被忽略.    ==是来判断她两侧的值是否相等的操作符,比较的结果是boolean值 --><#if username == "admin">    你好,超级管理员!</#if><#-- 当在星期天(星期天用0代表)的时候,输出以下信息 注意:数字不用放在引号内,如果将数字0放在引号内("0"),freemarker会将其误判为 字符串类型.--><#if today==0>  周末好,超级管理员.</#if><#-- 也可以这样表示大于或者是小于,!=就是不等于 以下的意思是如果异常数量大于0就提示管理员异常数量,如果不大于0就提示无异常 注意使用原始的> ,<或者是 !=,一定要用()括号括起来,否则freemarker将 视为这是该标签的回标签,那就是异常了.--><#if (errors > 0) >系统出现异常,异常数量为${errors}<#else>系统未出现异常.</#if>

最后的输出结果:




原创粉丝点击