我的開發環境
  框架:           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. 个人关于React的一些理解

    ##React背景 React是当前前端最火的框架,它的理念思想及构建方法比AngularJS更适合做webApp. 它是由facebook团队研发并开源到社区,所以它有很强大的技术背景,而且它的架构 ...

  2. Camtasia Studio屏幕录像安装与破解

    Camtasia Studio汉化版是一款功能强大的屏幕录像工具,能在任何颜色模式下轻松地记录屏幕动作,包括影像.音效.鼠标移动轨迹.解说声音等.Camtasia Studio具有强大的视频播放和视频 ...

  3. ReactiveCocoa框架学习<一>

    1.Cocoapods导入ReactiveCocoa: use_frameworks! target 'RACDemo' do pod 'ReactiveObjC', '~> 2.1.0' en ...

  4. 自定义citationstyles(cls)文献引用模板

    最近需要用国内某期刊的模板来写东西.所以需要自定义模板.国内的期刊主要遵循GB7714-2005的文献格式.对于经常使用Zotero.mendeley等免费的知识管理工具的同学,可以从这里获取cls模 ...

  5. ABAP 动态内表添加单元格颜色字段

    *动态内表alv显示时要求某些单元格显示颜色 *wa_fldcat-datatype不能添加LVC_T_SCOL类型,在创建好内表之后,再添加颜色列. DATA: wa_fldcat TYPE lvc ...

  6. Android进程间的通信之AIDL

    Android服务被设计用来执行很多操作,比如说,可以执行运行时间长的耗时操作,比较耗时的网络操作,甚至是在一个单独进程中的永不会结束的操作.实现这些操作之一是通过Android接口定义语言(AIDL ...

  7. Linux 安装node.js ---- 源码编译的方式

    一 : 普通用户: 安装前准备环境: 1.检查Linux 版本 命令: cat /etc/redhat-release 2.检查 gcc.gcc-c++ 是否安装过 命令: rpm -q gcc rp ...

  8. AngularJs自定义指令详解(5) - link

    在指令中操作DOM,我们需要link参数,这参数要求声明一个函数,称之为链接函数. 写法: link: function(scope, element, attrs) { // 在这里操作DOM} 如 ...

  9. VS2013开发 windows服务 挂到服务器上执行

    这是百度经验的链接,本人主要参考的他.http://jingyan.baidu.com/article/cd4c2979e9330d756f6e6070.html 1 创建windows服务项目 2 ...

  10. vps云服务器建站后绑定域名的方法?

    有很多的新手站长们,都不知道vps建站后该如何绑定自己的域名,这里就Windows系统的VPS主机利用iis绑定网站域名的方法,简要介绍一下. 通常情况下,我们在使用IIS建站的时候,都会有一步提示, ...