FreeMarker基本标签的使用
来源:互联网 发布:网络监控怎么设置 编辑:程序博客网 时间:2024/05/16 14:24
摘要: 上一节我们接触了一个FreeMarker很简单的例子FreeMarker入门教程,说到底,就是替换模板里相应的标签,这一节我们写一下FreeMarker基本标签的使用
上一节我们接触了一个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>
测试及输出结果
@Testpublic void test02() { //输出相应的对象 root.put("user", new User(1,"李四",16)); fu.print("03.ftl", root); } 1-----李四-----16</h1> 李四快成年
循环标签的使用
声明两个用户对象,然后在模板文件中循环输出
@Testpublic 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>
测试方法和输出:
@Testpublic 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}
测试方法
@Testpublic void test06() { //此时user对象并没有group的值 root.put("user",new User(1,"地点",22)); fu.print("06.ftl",root);}
用!符号可以处理空值,在!号后面加字符串是在此对象不存在的情况下,显示该字符串。
如果对象是空值,并没有在后面加!号,会直接报错。
${user.id}-------${user.name}------${user.group!}${user.id}-------${user.name}------${user.group!"此时user对象并没有group的值"}
1-------地点------1-------地点------此时user对象并没有group的值下面也会出错,因为此方式加!freemarker仅仅只会判断group.name是不是空值
${user.group.name!}此问题的解决方案是把整个导航用小括号包起来,然后再加!
${(user.group.name)!"没有任何值存在"}普通的字符串也可以用!来获取空值:
${(a.b)!"没有a.b元素"}没有a.b元素
在if标签中可以用两个问号来判断是否为空
<#if (a.b)??> 不为空<#else> 为空</#if>
为空
定义变量
<#--定义变量--><#assign username="张三"/>${username}
@Testpublic void test07() { root.put("now",new Date()); root.put("username", "李四"); fu.print("07.ftl",root); }
张三
本文链接:FreeMarker基本标签的使用,本文由huangyineng原创,转载请注明出处
- FreeMarker基本标签的使用
- freemarker的基本使用和常用标签
- freemarker的基本标签的使用与el表达式比较
- FreeMarker标签基本用法
- freemarker自定义标签的写法和使用
- freemarker 标签使用
- FreeMarker标签与使用
- FreeMarker标签使用
- freemarker标签使用
- freemarker使用struts2标签
- FreeMarker标签使用
- FreeMarker标签与使用
- FreeMarker标签使用
- FreeMarker标签与使用
- FreeMarker标签与使用
- FreeMarker标签与使用
- Freemarker标签使用
- FreeMarker标签与使用
- 变频器常见的问题
- 子池share pool的空闲空间内存查询
- 使用rapidxml操作xml~读写文件操作
- 2012年十一月GBin1 web技术热点荟萃
- 关于C++ const:const变量,cosnt输入参数,const返回值,const成员函数
- FreeMarker基本标签的使用
- rapidxml,一个快速的xml库
- Jquery遍历Json数据的示例(源码)
- Android.mk简介
- ios菜鸟之路:UIButton换图片或背景图或修改Select的机制(小贴士)
- nagios邮件报警设置
- 三大数据库的分页处理
- BoundsChecker使用说明
- 去Oracle事件(转)