我的開發環境
  框架:           springmvc+freemarker
  開發工具:    springsource-tool-suite-2.9.0
  JDK版本:    1.6.0_29
  tomcat版本:apache-tomcat-7.0.26

本文地址:http://www.cnblogs.com/sunang/p/3419807.html 轉載請注明出處^_^

本文要注意的點已经用          標注,請大家要特別注意。

前置文章

  SpringMVC配置入門    http://www.cnblogs.com/sunang/p/3419544.html

  Spring整合Freemarker  http://www.cnblogs.com/sunang/p/3419676.html

go!

step1.編寫controller文件,代碼如下:

package www.asuan.com.controller;

import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map; import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping; @Controller
public class HelloWorldController {
@RequestMapping("/helloWorld")
public String helloWorld(Model model) {
// 示例一
int flag = 0;
model.addAttribute("flag", flag);
// 示例二
List<String> noExistList = new ArrayList<String>();
noExistList = null;
model.addAttribute("noExistList", noExistList);
// 示例三
List<String> strList = new ArrayList<String>();
strList.add("www.");
strList.add("cnblogs.");
strList.add("com/sunang");
model.addAttribute("strList", strList);
// 示例四
Map<String, String> strMap = new HashMap<String, String>();
strMap.put("mapKey0", "www.");
strMap.put("mapKey1", "cnblogs.");
strMap.put("mapKey2", "com/sunang");
model.addAttribute("strMap", strMap);
// 示例五
Date nowTime = new Date();
model.addAttribute("nowTime", nowTime);//傳輸時間對象
return "helloWorld.ftl";
}
}

step2.編寫ftl文件,代碼如下:

<html>
<body>
示例一輸出結果:
<p>
<#-- if指令的用法-->
<#-- 在指令標籤內直接使用變量名得到文本值-->
<#if flag == >
flag = 1
<#elseif flag ==2>
flag = 2
<#else>
<#-- 在指令標籤外使用 ${變量名} 的格式來得到文本值-->
flag!=1 && flag!=2 flag的值為:${flag}
</#if>
</p>
<p>----------------------------------------------------------</p>
示例二輸出結果:
<p>
<#-- 判斷變量是否存在-->
<#if noExistList??>
List存在
<#else>
List不存在
</#if>
</p>
<p>----------------------------------------------------------</p>
示例三輸出結果:
<p>
<#-- list指令的用法,as可設置別名-->
<#list strList as sl>
<#-- 在變量名后加 _index 得到變量在容器中的序號,從0開始-->
<#if sl_index == >
我的博客地址是:${sl}
<#else>
${sl}
</#if>
</#list>
</p>
<p><p></p>
直接使用下標訪問List:${strList[0]}${strList[1]}${strList[2]}
</p>
<p>----------------------------------------------------------</p>
示例四輸出結果:
<p>
<#-- 使用 ${變量名.變量名} 獲取容器對象的子對象-->
${strMap.mapKey0}${strMap.mapKey1}${strMap.mapKey2}
</p>
<p>----------------------------------------------------------</p>
示例五輸出結果:
<p>
<#-- 當變量是日期對象時,可使用函數使其按格式輸出-->
${nowTime?string("yyyy-MM-dd")}
</p>
</body>
</html>

step3.運行與調試
    將工程部署到tomcat并運行,在瀏覽器輸入:http://localhost:8080/你設置的工程名/helloWorld.htm

運行結果:

complete!

ps.如果你想深入學習Freemarker,可以看看南磊翻譯的《FreeMarker_Manual_zh_CN》。

Freemarker常用指令使用范例的更多相关文章

  1. Freemarker常用技巧

    1,截取字符串 有的时候我们在页面中不需要显示那么长的字符串,比如新闻标题,这样用下面的例子就可以自定义显示的长度 < lt. <= lte. > gt. >= gte < ...

  2. ImageMagick常用指令详解

    Imagemagick常用指令 (ImageMagick--蓝天白云) (ImageMagick官网) (其他比较有价值的IM参考) (图片自动旋转的前端实现方案) convert 转换图像格式和大小 ...

  3. LINUX 常用指令学习

    目录 0 查找find 1 别名alias 2 变量的设置 3 常用的系统变量 4 通配符及组合按键 5 指令之间的分隔符(;&||) 6 输出重定向(>,>>,1>, ...

  4. git常用指令整理

    git常用指令一览表 GIT指令 说明 git add . 将全部文件的内容加到Git索引以便执行commit. 这个指令不会检查文件夹中是否有文件被删除. 要注意的是,只有执行" git ...

  5. redis基础:redis下载安装与配置,redis数据类型使用,redis常用指令,jedis使用,RDB和AOF持久化

    知识点梳理 课堂讲义 课程计划 1. REDIS 入 门 (了解) (操作)   2. 数据类型 (重点) (操作) (理解) 3. 常用指令   (操作)   4. Jedis (重点) (操作) ...

  6. linux常用指令

    整理下来的linux常用指令 mount [-t 文件系统] 设备文件名 挂载点挂载命令,一般用于在挂载ISO,或者其他比如U盘等设备时使用,[-t iso9660]为固定格式,可写可不写,非必写项. ...

  7. 走进AngularJs(二) ng模板中常用指令的使用方式

    通过使用模板,我们可以把model和controller中的数据组装起来呈现给浏览器,还可以通过数据绑定,实时更新视图,让我们的页面变成动态的.ng的模板真是让我爱不释手.学习ng道路还很漫长,从模板 ...

  8. mac 终端 常用指令

    开始正式研究ios 应用开发,由于是从C开始学起,所以学习下常用的mac终端指令,方便后续常用操作. mac 终端 常用指令: 1.ls指令 用途:列出文件 常用参数 -w 以简洁的形式列出所有文件和 ...

  9. [AngularJS] 常用指令

    常用指令 ng-hide指令,用于控制部分HTML元素可见(ng-hide="false")和不可见状态(ng-hide="true"),如下: <div ...

随机推荐

  1. python-基础介绍

    一.Linux基础 - 计算机以及日后我们开发的程序防止的服务器的简单操作 二.Python开发 http://www.cnblogs.com/wupeiqi/articles/5433893.htm ...

  2. 敏捷软件开发vs传统软件开发

    摘要 本文介绍了传统软件开发(着重介绍了传统软件开发中常用的瀑布模型)和敏捷软件开发,以及敏捷开发和传统开发的对比. 一.传统软件开发 比较常用的几种传统软件开发方法:瀑布式开发.迭代式开发.螺旋开发 ...

  3. Win7与Mint双系统安装体验

    双系统安装前的准备 1.安装前的准备 安装双系统可能会对磁盘文件带来一些影响,为了避免在安装过程中由于系统瘫痪造成不必要的损失,所以我们在准备安装双系统之前,要对PC机中的重要文件进行备份,对资料要做 ...

  4. [原创.数据可视化系列之六]使用openlyaers进行公网地图剪切

    进行地图开发的过程中,我一般使用天地图或者微软的地图作为地图,因为这两种地图的经纬度偏差最小,基本可以满足用户需求,比如: 不用说,都是全部地图,这也是最常用的一种方法. 但是用户说,我只看大连的地图 ...

  5. 初学c# -- 学习笔记(五) winfrom无边框四周阴影

    刚用到这个功能,网上扯淡的东西太多了,都是2边阴影,还什么窗口叠加.ps作图啥的,什么玩意.还是老外实在,google找的,无边框窗体,四边透明阴影. public partial class For ...

  6. Basic Calculator

    本博客介绍leetcode上的一道不难,但是比较经典的算法题. 题目如下: Implement a basic calculator to evaluate a simple expression s ...

  7. java_method_stringUtils

    /** * 字符串英文单双引号处理,将中英文引号转为中文的引号 * @param temp * @return */ public static String getStringDatabase(St ...

  8. nodejs npm常用命令

    npm是一个node包管理和分发工具,已经成为了非官方的发布node模块(包)的标准.有了npm,可以很快的找到特定服务要使用的包,进行下载.安装以及管理已经安装的包. 1.npm install m ...

  9. 引用模板中的类型时,切记要加上typename声明!!

    如题,发现实际操作中太容易忘记了,导致一些莫名其妙的编译错误,故在此记录!

  10. vim符号列表窗口

    有时使用vim开发时,需要能够直观的查看文件的符号列表或者变量list,但是vim不直接支持这个功能,需要使用ctags的插件支持. 以下是在ubuntu下的详细设置方法: 步骤1:安装ctags u ...