锁定老帖子 主题:FreeMarker基本标签的使用
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
作者 | 正文 | |||||||||||
发表时间:2012-12-07
最后修改:2012-12-07
上一节我们接触了一个FreeMarker很简单的例子FreeMarker入门教程 ,说到底,就是替换模板里相应的标签,这一节我们写一下FreeMarker基本标签的使用 。
在FreeMarker入门教程 ,相信你还刻模板里的“你好:${username}”,这是简单的输出字符串,和EL很像吧,这一节我们来学其他标签
输出对象及判断标签的引用 我们先定义一个用户类 package com.naxsu.freemarker; public class User { private int id; private String name; private int age; // set get method public User(int id, String name, int age) { super(); this.id = id; this.name = name; this.age = age; } public User() { super(); } } 模板中输出用户的相关属性值和对年龄的简单判断文件03.ftl 如下 ${user.id}-----${user.name}-----${user.age}</h1> <#if user.age lt 12> ${user.name}还是一个小孩 <#elseif user.age lt 18> ${user.name}快成年 <#else> ${user.name}已经成年 </#if> 测试及输出结果 @Test public void test02() { //输出相应的对象 root.put("user", new User(1,"李四",16)); fu.print("03.ftl", root); } 1-----李四-----16</h1> 李四快成年
循环标签的使用 声明两个用户对象,然后在模板文件中循环输出 @Test public void test02() { List<User> users = Arrays.asList( new User(1,"张三",22),new User(2,"李四",33)); root.put("users",users); fu.print("03.ftl", root); } 模板文件,主要是应用循环标签 <#list users as user> ${user.id}---------${user.name}-------${user.age} </#list> 输出: 1--------- 张三 -------22 2--------- 李四 -------33
页面包含 如果是一个top文件,你想包含在HTML中,即用include 标签 被包含模板文件top.ftl:
<h1>欢迎${username}访问我们的系统</h1> 主页面: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <#include "/inc/top.ftl"/> <hr/> <#list users as user> ${user.id}---------${user.name}-------${user.age}<br/> </#list> </body> </html> 测试方法和输出: @Test public void test05() { root.put("username", "管理员"); List<User> users = Arrays.asList( new User(1,"张三",22),new User(2,"李四",33)); root.put("users",users); fu.print("05.ftl",root); } /////////////////////// <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <h1>欢迎管理员访问我们的系统</h1><hr/> 1---------张三-------22<br/> 2---------李四-------33<br/> </body> </html> 处理空值 在这里新添加一个对象 Group ,在 User 引用这个对象,没给 group 对象赋值的情况下测试处理空值的情况。 Group.java package com.naxsu.freemarker; public class Group { private String name; // set get method public Group(String name) { super(); this.name = name; } public Group() { } } 在 User.java 中引用 Group 对象 public class User { private Group group; //set get method } 测试方法 @Test public void test06() { //此时user对象并没有group的值 root.put("user",new User(1,"地点",22)); fu.print("06.ftl",root); } 用!符号可以处理空值,在!号后面加字符串是在此对象不存在的情况下,显示该字符串。 如果对象是空值,并没有在后面加! 号,会直接报错。
下面也会出错,因为此方式加!freemarker仅仅只会判断group.name是不是空值
此问题的解决方案是把整个导航用小括号包起来,然后再加!
普通的字符串也可以用!来获取空值:
在if标签中可以用两个问号来判断是否为空
定义变量
本文链接: FreeMarker基本标签的使用 ,本文由huangyineng原创,转载请注明出处
下一节:FreeMarker基本数据类型 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
||||||||||||
返回顶楼 | ||||||||||||
浏览 4382 次