原文: http://www.java2000.net/p7845
测试IF语句的使用
程序
- package freemarker;
- import java.io.File;
- import java.io.FileOutputStream;
- import java.io.OutputStreamWriter;
- import java.io.Writer;
- import java.util.HashMap;
- import java.util.Map;
- import freemarker.template.Configuration;
- import freemarker.template.Template;
- public class TestIf {
- private Configuration cfg;
- public Configuration getCfg() {
- return cfg;
- }
- public void init() throws Exception {
- cfg = new Configuration();
- cfg.setDirectoryForTemplateLoading(new File("bin/freemaker"));
- }
- public static void main(String[] args) throws Exception {
- TestIf obj = new TestIf();
- obj.init();
- Map root = new HashMap();
- root.put("user", "java2000.net");
- Map latestProduct = new HashMap();
- latestProduct.put("url", "http://www.java2000.net");
- latestProduct.put("name", "Java世纪网");
- root.put("latestProduct", latestProduct);
- Template t = obj.getCfg().getTemplate("TestIf.ftl");
- Writer out = new OutputStreamWriter(new FileOutputStream("TestIf.html"), "GBK");
- t.process(root, out);
- System.out.println("Successfull................");
- }
- }
模板
- <html>
- <head>
- <title>Welcome!</title>
- </head>
- <body>
- <h1>
- Welcome ${user}<#if user == "java2000.net">, our beloved leader<#else>my friend</#if>!
- </h1>
- <p>Our latest product:
- <a href="${latestProduct.url}">${latestProduct.name}</a>!
- </body>
- </html>
输出结果
- <html>
- <head>
- <title>Welcome!</title>
- </head>
- <body>
- <h1>
- Welcome java2000.net, our beloved leader!
- </h1>
- <p>Our latest product:
- <a href="http://www.java2000.net">Java世纪网</a>!
- </body>
- </html>
结果分析:
<#if
语句通过后面的测试条件,如果为true,则显示
如果不等于,则进入<#else>部分显示,
以</#if>结束。
<script type="text/javascript">
</script> <script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript">
</script>
分享到:
相关推荐
在FreeMarker中,`<#if>`语句用于进行条件判断,如果表达式的值为真,则执行相应的代码块。在某些情况下,我们可能需要在`<#if>`语句内部再嵌套`<#if>`,这就是所谓的`if`嵌套。 首先,让我们理解`<#if>`的基本语法...
3. 指令和变量:FreeMarker支持多种指令,如`<#if>`(条件判断)、`<#foreach>`(循环)和`<#assign>`(赋值)。变量则用于显示数据模型中的值。 二、FreeMarker的主要特性 1. 非脚本语言:FreeMarker模板不包含...
这个文档将深入解析Freemarker的语法特性,包括模板注释、条件语句(如`<#if>`、`<#else>`、`<#choose>`)、循环结构(如`<#list>`)、逻辑运算符和比较运算符。同时,可能会讲解如何在模板中处理字符串、数字、日期...
- `Freemaker_入门+深入+开发指南+学习笔记.doc`:这份文档提供了从基础到高级的Freemarker学习路径,包括基本语法、模板设计原则和实践案例。 - `freemaeker全面教程.doc`:这份教程全面覆盖了Freemarker的各个...
3. 插件式模板载入器:可以从任何源载入模板,如本地文件、数据库等等。 4. 强大的模板语言:所有常用的指令:include、if/elseif/else、循环结构等。 5. 通用数据模型:FreeMarker 不是直接反射到 Java 对象,Java ...
2. **控制结构**:Freemarker支持条件语句(`<#if>`、`<#else>`、`<#elseif>`)和循环(`<#foreach>`)等,用于根据数据动态生成内容。 3. **模板继承**:通过`<#assign>`和`<#import>`指令,可以实现模板间的变量...
- **条件语句**:`<#if>`、`<#elseif>`、`<#else>` 用于实现条件判断。 - **循环结构**:`<#list>` 可以遍历集合或数组,实现循环输出。 - **注释**:`<!--...-->` 用于在模板中添加注释,不会出现在生成的输出中...
4. **FreeMarker模板文件**:如`login.ftl`、`register.ftl`等,用于展示登录、注册等页面,通过`<#if>`、`<#foreach>`等语句进行条件判断和循环,以及`<@s.action>`标签调用Struts2的Action。 此外,项目中可能还...
3. 标准指令:Freemarker提供了一系列标准指令,如`#if`、`#foreach`、`#set`等,用于控制流程和定义变量。 二、Freemarker语法 1. 输出表达式: `${expression}` 用于输出变量或表达式的值。例如,`${user.name}`...
Freemarker提供了条件语句(`<#if>`, `<#else>`, `<#elseif>`)和循环语句(`<#foreach>`),可以实现复杂的逻辑控制。 9. **内置指令和函数** Freemarker有许多内置的指令,如`include`用于包含其他模板,`...
标题中的“18.[视频]使用模板(thymeleaf-freemarker)【从零开始学Spring Boot】”指的是一个视频教程,该教程聚焦于Spring Boot中模板引擎的使用,特别是Thymeleaf和FreeMarker这两种技术。Spring Boot是一个快速...
- `<#if ...>`、`<#else>`、`<#elseif ...>`:条件判断语句。 - `<#foreach ...>`:循环语句,通常用于遍历集合数据。 - `<@...>`:宏,可以复用代码片段。 6. **运行与测试** - 运行SpringBoot应用,访问`...
在Struts2中使用FreeMarker,主要涉及以下几个核心概念和步骤: 1. **配置FreeMarker**: - 在Struts2的配置文件(通常为struts.xml)中,你需要指定FreeMarker作为默认的视图技术。 - 配置FreeMarker的路径,...
3. **模板设计**:Freemarker支持条件语句、循环、包含其他模板等功能,使得模板设计灵活且易于维护。 4. **缓存机制**:Freemarker有内置的模板缓存,可以提高性能,尤其是在高并发环境下。 5. **国际化与本地化*...
Freemarker支持条件语句(`<#if>`、`<#else>`)、循环(`<#foreach>`)以及自定义函数(`<#function>`),使得模板可以处理更复杂的情况。 在实际应用中,我们通常会将这些步骤封装到一个服务类或工具类中,以便在...
在IT领域的模板引擎技术中,FreeMarker是一种广泛使用的开源模板引擎,它被设计用于生成文本输出,如HTML、XML或纯文本。FreeMarker提供了一种灵活且强大的方式来处理动态内容,尤其适用于Web开发中的视图层。在...
3. **Freemarker指令(Directives)**:这些是控制流程或结构的特殊标记,如`<#if>`、`<#foreach>`、`<#assign>`等。它们允许你在模板中进行条件判断、循环和变量赋值。 4. **内置函数(Built-in Functions)**:...
3. **数据模型**:FreeMarker从Java应用程序中获取数据,这些数据形成了模板渲染时所用的数据模型。开发者可以通过Spring MVC、Struts2等框架将Java对象绑定到模板的变量中。 4. **指令(Directives)**:...