文章来源:http://www.hxstrive.com/article/181.htm
将介绍在Freemarker中如何使用常见的if else 分支判断语句。通过一个实例来说明如何正确使用。
控制器(InstructionController.java)
package com.test.controller;
import java.util.ArrayList;
import java.util.List;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import com.test.mode.User;
/**
* Freemarker指令
* @author Administrator
*
*/
@Controller
@RequestMapping("/instructionController")
public class InstructionController {
/**
* if 指令
* @param map
* @return
*/
@RequestMapping("/ifStatement")
public String ifStatement(ModelMap map){
map.put("username", "张三");
map.put("score", 73); // 成绩
map.put("sex", "F"); // M-男、F-女
return "ifStatement.ftl";
}
}
模板文件(ifStatement.ftl)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Freemarker if 指令测试</title>
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="this is my page">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body>
<h3>学生基本信息</h3>
用户名: ${username}<br/>
性 别:
<#if sex=="F">
女
<#elseif sex=="M">
男
<#else>
其他
</#if>
<br/>
成 绩:${score}分<br/>
级 别:
<#if (score >= 90) > <#-- 此处不加括号,则系统认为 “score >” 将scroe作为了条件 -->
非常优秀
<#elseif (score >= 80 && score < 90)>
优秀
<#elseif (score >= 70 && score < 80)>
良好
<#elseif (score >= 60 && score < 70)>
一般
<#else>
差劲
</#if>
<br/>
</body>
</html>
输出结果:
学生基本信息
用户名: 张三
性 别: 女
成 绩: 73分
级 别: 良好
相关推荐
在FreeMarker中,`<#if>`语句用于进行条件判断,如果表达式的值为真,则执行相应的代码块。在某些情况下,我们可能需要在`<#if>`语句内部再嵌套`<#if>`,这就是所谓的`if`嵌套。 首先,让我们理解`<#if>`的基本语法...
4. 强大的模板语言:所有常用的指令:include、if/elseif/else、循环结构等。 5. 通用数据模型:FreeMarker 不是直接反射到 Java 对象,Java 对象通过插件式对象封装,以变量方式在模板中显示。 6. 为 Web 准备:在...
Freemarker提供了条件语句(`<#if>`, `<#else>`, `<#elseif>`)和循环语句(`<#foreach>`),可以实现复杂的逻辑控制。 9. **内置指令和函数** Freemarker有许多内置的指令,如`include`用于包含其他模板,`...
3. **控制结构**:Freemarker提供了丰富的控制结构,如条件语句(`<#if>`、`<#else>`、`<#elseif>`)、循环(`<#foreach>`)、以及异常处理(`<#try>`、`<#catch>`)等,使得模板具有一定的逻辑处理能力。...
`if`语句可以与`else`和`elseif`一起使用来处理多分支逻辑。 ```fml <#if condition> ... // 如果condition为真,则执行这部分内容 <#elseif condition2> ... // 如果condition2为真,则执行这部分内容 <#else> ....
8. **条件语句和循环结构**: 如`<#if>`, `<#else>`, `<#elseif>`用于条件判断,`<#foreach>`用于遍历集合,提供了丰富的控制流程。 9. **模板继承与布局**: Freemarker支持模板继承,通过`<#include>`和`<#assign>`...
4. 条件语句:`<#if>`, `<#else>`, `<#elseif>` 用于条件判断,类似于Java的if...else...结构。 5. 循环结构:`<#foreach>` 用于遍历集合,如数组、列表等。 6. 链接和路径:`<@link>` 用于生成链接,可以动态生成...
Freemarker支持条件语句(`<#if>`、`<#else>`)、循环(`<#foreach>`)以及自定义函数(`<#function>`),使得模板可以处理更复杂的情况。 在实际应用中,我们通常会将这些步骤封装到一个服务类或工具类中,以便在...
FreeMarker支持`<#if>`、`<#elseif>`、`<#else>`等条件判断,可以对字符串进行条件处理。例如: ```html <#if name?contains("Doe")> 姓名包含"Doe" <#else> 姓名不包含"Doe" </#if> ``` 8. **模板中的...
- **条件语句**:使用`<#if>`和`<#else>`展示条件分支。 - **循环**:`<#list>`用于遍历数组、列表或集合。 - **变量赋值**:`<#assign>`用于创建和修改变量。 - **数据模型的使用**:将Java对象传递给模板,并在...
4. **条件逻辑**:FreeMarker的条件语句如`<#if>`、`<#else>`、`<#elseif>`可以与Shiro标签结合,构建复杂的权限控制逻辑。例如,你可以根据用户的角色或权限动态展示或隐藏某些元素。 5. **简化代码**:使用Shiro...
2. 条件语句:`#if`、`#else`、`#elseif`用于构造条件判断。例如,`<#if user.isAdmin>管理员</#if>`检查用户是否为管理员。 3. 循环结构:`#foreach`用于遍历集合。例如,`${item}</#foreach>`遍历items列表并打印...
2. 条件语句:`<#if>...<#else>...<#endif>`,用于条件判断。 3. 循环结构:`<#foreach item in list>`,遍历列表或数组。 4. 赋值语句:`<#assign var = value>`,定义变量。 5. 注释:`<!--#comment-->`,用于模板...
2. 条件语句:`<#if condition>`、`<#else>`、`<#elseif otherCondition>`用于基于条件输出内容。 3. 引用对象属性: `${user.name}`获取用户的名字。 4. 范围操作:`<#assign x = 5>`定义变量`x`,`...
- **条件语句**:`<#if>`、`<#elseif>`、`<#else>` 用于实现条件判断。 - **循环结构**:`<#list>` 可以遍历集合或数组,实现循环输出。 - **注释**:`<!--...-->` 用于在模板中添加注释,不会出现在生成的输出中...
- **条件语句**:`<#if>`、`<#elseif>`、`<#else>`用于条件判断。 - **异常处理**:`<#try>`、`<#catch>`、`<#finally>`用于捕获和处理模板执行过程中的异常。 FreeMarker中文手册中会详细解释这些概念和语法,并...
这个文档将深入解析Freemarker的语法特性,包括模板注释、条件语句(如`<#if>`、`<#else>`、`<#choose>`)、循环结构(如`<#list>`)、逻辑运算符和比较运算符。同时,可能会讲解如何在模板中处理字符串、数字、日期...
FreeMarker支持条件语句(`<#if>`, `<#else>`, `<#elseif>`)和循环(`<#list>`)等控制流,允许在模板中进行条件判断和迭代。 7. **指令(Directives)**: 指令用于控制模板的结构和行为,如`include`用于包含...
此外,Freemarker提供了条件语句(`<#if>`、`<#else>`、`<#elseif>`)和循环结构(`<#foreach>`),使得在模板中进行逻辑控制变得可能。你还可以使用`<#assign>`定义变量,`<#function>`自定义函数,以及`<#import>`...
它们用于控制模板的逻辑,例如循环(`#list`)、条件判断(`#if`,`#else`等)、包含其他模板(`#include`)等。指令可以是开始标签、结束标签或空标签形式,且需要正确嵌套,如同XML。 例如,以下是一个简单的...