<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-124  評論-49  文章-56  trackbacks-0
    集合

    集合以方括號包括,各集合元素之間以英文逗號","分隔,看如下的例子:
    <#list ["星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期天"] as x>
    ${x}
    </#list>
    輸出結果是:
    星期一
    星期二
    星期三
    星期四
    星期五
    星期六
    星期天

    除此之外,集合元素也可以是表達式,例子如下:
    [2 + 2, [1, 2, 3, 4], "whatnot"]

    還可以使用數字范圍定義數字集合,如2..5等同于[2, 3, 4, 5],但是更有效率.注意,使用數字范圍來定義集合時無需使用方括號,數字范圍也支持反遞增的數字范圍,如5..2

    Map對象

    Map對象使用花括號包括,Map中的key-value對之間以英文冒號":"分隔,多組key-value對之間以英文逗號","分隔.下面是一個例子:
    {"語文":78, "數學":80}
    Map對象的key和value都是表達式,但是key必須是字符串


    輸出變量值

    FreeMarker的表達式輸出變量時,這些變量可以是頂層變量,也可以是Map對象中的變量,還可以是集合中的變量,并可以使用點(.)語法來訪問Java對象的屬性.下面分別討論這些情況

    1,頂層變量
    所謂頂層變量就是直接放在數據模型中的值,例如有如下數據模型:
    Map root = new HashMap();   //創建數據模型
    root.put("name","annlee");   //name是一個頂層變量

    對于頂層變量,直接使用${variableName}來輸出變量值,變量名只能是字母,數字,下劃線,$,@和#的組合,且不能以數字開頭號.為了輸出上面的name的值,可以使用如下語法:
    ${name}

    2,輸出集合元素
    如果需要輸出集合元素,則可以根據集合元素的索引來輸出集合元素,集合元素的索引以方括號指定.假設有索引:
    ["星期一","星期二","星期三","星期四","星期五","星期六","星期天"].該索引名為week,如果需要輸出星期三,則可以使用如下語法:
    ${week[2]}   //輸出第三個集合元素

    此外,FreeMarker還支持返回集合的子集合,如果需要返回集合的子集合,則可以使用如下語法:
    week[3..5]   //返回week集合的子集合,子集合中的元素是week集合中的第4-6個元素

    3,輸出Map元素
    這里的Map對象可以是直接HashMap的實例,甚至包括JavaBean實例,對于JavaBean實例而言,我們一樣可以把其當成屬性為key,屬性值為value的Map實例.為了輸出Map元素的值,可以使用點語法或方括號語法.假如有下面的數據模型:
    Map root = new HashMap();
    Book book = new Book();
    Author author = new Author();
    author.setName("annlee");
    author.setAddress("gz");
    book.setName("struts2");
    book.setAuthor(author);
    root.put("info","struts");
    root.put("book", book);

    為了訪問數據模型中名為struts2的書的作者的名字,可以使用如下語法:
    book.author.name    //全部使用點語法
    book["author"].name
    book.author["name"]    //混合使用點語法和方括號語法
    book["author"]["name"]   //全部使用方括號語法

    使用點語法時,變量名字有頂層變量一樣的限制,但方括號語法沒有該限制,因為名字可以是任意表達式的結果.

    集合連接運算符

    這里所說的集合運算符是將兩個集合連接成一個新的集合,連接集合的運算符是+,看如下的例子:
    <#list ["星期一","星期二","星期三"] + ["星期四","星期五","星期六","星期天"] as x>
    ${x}
    </#list>
    輸出結果是:星期一 星期二 星期三 星期四 星期五 星期六 星期天

    Map連接運算符

    Map對象的連接運算符也是將兩個Map對象連接成一個新的Map對象,Map對象的連接運算符是+,如果兩個Map對象具有相同的key,則右邊的值替代左邊的值.看如下的例子:
    <#assign scores = {"語文":86,"數學":78} + {"數學":87,"Java":93}>
    語文成績是${scores.語文}
    數學成績是${scores.數學}
    Java成績是${scores.Java}
    輸出結果是:
    語文成績是86
    數學成績是87
    Java成績是93

    posted on 2009-11-25 10:06 junly 閱讀(2590) 評論(0)  編輯  收藏 所屬分類: freemark/velocity
    主站蜘蛛池模板: 边摸边脱吃奶边高潮视频免费| 亚洲乱码一二三四区麻豆| 国产成人高清亚洲一区91| 毛片免费视频观看| 亚洲综合无码无在线观看| 最近最新MV在线观看免费高清| 亚洲一区二区三区在线观看网站| 青苹果乐园免费高清在线| 亚洲色丰满少妇高潮18p| 国产精品视_精品国产免费| 国产成人综合久久精品亚洲| 亚洲高清无码在线观看| 精品久久久久久国产免费了 | 亚洲视频在线观看| 性色午夜视频免费男人的天堂| 亚洲黄色片在线观看| 99久久这里只精品国产免费| 亚洲欧美熟妇综合久久久久| 免费人成网站在线播放| 插鸡网站在线播放免费观看| 亚洲AV午夜成人影院老师机影院| 国产免费的野战视频| 久久亚洲中文字幕无码| 国产亚洲情侣一区二区无| 色欲国产麻豆一精品一AV一免费| 亚洲一区二区三区无码国产| 国外成人免费高清激情视频| 污污污视频在线免费观看| 亚洲一级二级三级不卡| 99精品全国免费观看视频 | 国产亚洲精品国看不卡| 中文字幕免费在线| 色偷偷尼玛图亚洲综合| 久久久久噜噜噜亚洲熟女综合| 16女性下面无遮挡免费| 在线观看亚洲网站| 亚洲高清在线视频| 在线观看人成视频免费| 中文无码成人免费视频在线观看| 亚洲xxxx18| 亚洲精品无码mv在线观看网站 |