Freemarker常用指令使用示例
我的開發(fā)環(huán)境
框架:springmvc+freemarker
開發(fā)工具:springsource-tool-suite-2.9.0
JDK版本:1.6.0_29
tomcat版本:apache-tomcat-7.0.26
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);//傳輸時(shí)間對(duì)象
return "helloWorld.ftl";
}
}
step2.編寫ftl文件,代碼如下:
<html>
<body>
示例一輸出結(jié)果:
<p>
<#-- if指令的用法-->
<#-- 在指令標(biāo)籤內(nèi)直接使用變量名得到文本值-->
<#if flag == 1>
flag = 1
<#elseif flag ==2>
flag = 2
<#else>
<#-- 在指令標(biāo)籤外使用 ${變量名} 的格式來得到文本值-->
flag!=1 && flag!=2 flag的值為:${flag}
</#if>
</p>
<p>----------------------------------------------------------</p>
示例二輸出結(jié)果:
<p>
<#-- 判斷變量是否存在-->
<#if noExistList??>
List存在
<#else>
List不存在
</#if>
</p>
<p>----------------------------------------------------------</p>
示例三輸出結(jié)果:
<p>
<#-- list指令的用法,as可設(shè)置別名-->
<#list strList as sl>
<#-- 在變量名后加 _index 得到變量在容器中的序號(hào),從0開始-->
<#if sl_index == 0>
我的博客地址是:${sl}
<#else>
${sl}
</#if>
</#list>
</p>
<p><p></p>
直接使用下標(biāo)訪問List:${strList[0]}${strList[1]}${strList[2]}
</p>
<p>----------------------------------------------------------</p>
示例四輸出結(jié)果:
<p>
<#-- 使用 ${變量名.變量名} 獲取容器對(duì)象的子對(duì)象-->
${strMap.mapKey0}${strMap.mapKey1}${strMap.mapKey2}
</p>
<p>----------------------------------------------------------</p>
示例五輸出結(jié)果:
<p>
<#-- 當(dāng)變量是日期對(duì)象時(shí),可使用函數(shù)使其按格式輸出-->
${nowTime?string("yyyy-MM-dd")}
</p>
</body>
</html>
step3.運(yùn)行與調(diào)試
將工程部署到tomcat并運(yùn)行,在瀏覽器輸入:http://localhost:8080/你設(shè)置的工程名/helloWorld.htm
運(yùn)行結(jié)果:
相關(guān)文章
Java 實(shí)現(xiàn)網(wǎng)絡(luò)爬蟲框架詳細(xì)代碼
這篇文章主要介紹了Java 實(shí)現(xiàn)網(wǎng)絡(luò)爬蟲框架,主要是用于爬取網(wǎng)絡(luò)上一些內(nèi)容,比如超鏈接之類的,需要的朋友可以參考下面文章內(nèi)容2021-09-09JAVA演示阿里云圖像識(shí)別API,印刷文字識(shí)別-營(yíng)業(yè)執(zhí)照識(shí)別
最近有由于工作需要,開始接觸阿里云的云市場(chǎng)的印刷文字識(shí)別API-營(yíng)業(yè)執(zhí)照識(shí)別這里我加上了官網(wǎng)的申請(qǐng)說明,只要你有阿里云賬號(hào)就可以用,前500次是免費(fèi)的,API說明很簡(jiǎn)陋,只能做個(gè)簡(jiǎn)單參考2019-05-05Java數(shù)據(jù)結(jié)構(gòu)之線性表
線性表是其組成元素間具有線性關(guān)系的一種數(shù)據(jù)結(jié)構(gòu),對(duì)線性表的基本操作主要有,獲取元素,設(shè)置元素值,遍歷,插入,刪除,查找,替換,排序等。而線性表可以采用順序儲(chǔ)存結(jié)構(gòu)和鏈?zhǔn)絻?chǔ)存結(jié)構(gòu),本節(jié)主要講解順序表、單鏈表以及雙鏈表的各種基本操作。2017-03-03Java?實(shí)現(xiàn)使用Comparable按照我們指定的規(guī)則排序
這篇文章主要介紹了Java?如何使用Comparable按照我們指定的規(guī)則排序,通過練習(xí)創(chuàng)建TreeSet集合使用無參構(gòu)造方法,并按照年齡從小到大的順序排序,若年齡相同再按照姓名的字母順序排序展開內(nèi)容,需要的朋友可以參考一下2022-04-04Java線程中synchronized和volatile關(guān)鍵字的區(qū)別詳解
這篇文章主要介紹了Java線程中synchronized和volatile關(guān)鍵字的區(qū)別詳解,synchronzied既能夠保障可見性,又能保證原子性,而volatile只能保證可見性,無法保證原子性,volatile不需要加鎖,比synchronized更輕量級(jí),不會(huì)阻塞線程,需要的朋友可以參考下2024-01-01MyBatis動(dòng)態(tài)SQL如何實(shí)現(xiàn)前端指定返回字段
這篇文章主要介紹了MyBatis動(dòng)態(tài)SQL如何實(shí)現(xiàn)前端指定返回字段,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-01-01java中字符進(jìn)行全角半角轉(zhuǎn)換示例代碼
全角:指一個(gè)字符占用兩個(gè)標(biāo)準(zhǔn)字符位置,而半角:指一字符占用一個(gè)標(biāo)準(zhǔn)的字符位置,在日常開發(fā)中經(jīng)常會(huì)遇到全角半角轉(zhuǎn)換的要求,下面這篇文章主要給大家介紹了關(guān)于java中字符進(jìn)行全角半角轉(zhuǎn)換的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下。2017-08-08