<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
    主站蜘蛛池模板: 亚洲免费网站在线观看| 爱情岛亚洲论坛在线观看| 成全在线观看免费观看大全| 亚洲AⅤ永久无码精品AA| 无码天堂va亚洲va在线va| 亚洲AV无码一区二区三区在线观看| 国产成人人综合亚洲欧美丁香花| 在线播放免费播放av片| 在线观看亚洲免费| 丁香亚洲综合五月天婷婷| 激情小说亚洲图片| 伊人久久精品亚洲午夜| 99久久婷婷免费国产综合精品| 久久亚洲国产欧洲精品一| 免费无码中文字幕A级毛片| 亚洲视频国产视频| 色婷婷7777免费视频在线观看 | 成人国产mv免费视频| 国产精品亚洲综合天堂夜夜| 亚洲精品国产精品国自产观看| 两性色午夜视频免费播放| 亚洲欧洲国产日韩精品| 无码免费午夜福利片在线| 老湿机一区午夜精品免费福利 | 亚洲精品色婷婷在线影院| 两个人看的www高清免费观看| 亚洲黄色在线观看网站| 在线a人片天堂免费观看高清| 无码日韩人妻AV一区免费l| 亚洲人成网77777色在线播放| 国产成人精品免费视频大全麻豆| 亚洲AV永久无码精品放毛片| 国产亚洲成人在线播放va| 久久国产色AV免费看| 亚洲精品无码专区| 亚洲乱码一区二区三区在线观看| 久久久久久久免费视频| 一级做α爱过程免费视频| 亚洲理论在线观看| 亚洲成人影院在线观看| 成视频年人黄网站免费视频|