軟件是對質量的不懈追求

          StringTemplate語法

          1 變量替換
          public static void fun1() {
            StringTemplate st = new StringTemplate(
              "對象變量替換 姓名:$KeyList.Name$, 年齡:$KeyList.Age$ ");
            HashMap ht = new HashMap();
            ht.put("Name", "李四");
            ht.put("Age", "35");
            st.setAttribute("KeyList", ht);
            System.out.print(st.toString());
           }
          2 自定義集合替換
          public static void fun2() {
            StringTemplate st = new StringTemplate(
              "自定義集合替換 $List:{姓名:$it.Name$ 年齡:$it.Age$}$");
            st.setAttribute("List.{Name,Age}", "王二", "29");
            System.out.print(st.toString());

           }
          3 對象變量替換
          定義類
          private static class User {
            String name;
            String age;

            public String getName() {
             return name;
            }

            public void setName(String name) {
             this.name = name;
            }

            public String getAge() {
             return age;
            }

            public void setAge(String age) {
             this.age = age;
            }
           }
          public static void fun3() {
            User us = new User();
            us.name = "張三";
            us.age = "23";
            List<User> uss = new ArrayList<User>();
            uss.add(us);
            uss.add(us);
            uss.add(us);
            uss.add(us);
            uss.add(us);
            StringTemplate st = new StringTemplate(
              "<table>$Item:{<tr class=black><td>$it.name$</td></tr>},{<tr class=red><td>$it.age$</td></tr>};separator=\"\n\"$</table>");
            st.setAttribute("Item", uss);
            System.out.print(st.toString());
           }
             交叉替換
           public static void fun4() {
            User us = new User();
            us.name = "張三";
            us.age = "23";
            List<User> uss = new ArrayList<User>();
            uss.add(us);
            uss.add(us);
            uss.add(us);
            uss.add(us);
            uss.add(us);

            StringTemplateGroup sg = new StringTemplateGroup("GroupTest");
            sg.defineTemplate("RowRed",
              "<tr class=red><td>$it.Name$</td><td>$it.Age$</td></tr>\n");
            sg.defineTemplate("Rowblack",
              "<tr class=black><td>$it.Name$</td><td>$it.Age$</td></tr>\n");
            StringTemplate st = sg.defineTemplate("List",
              "<table>$Item:RowRed(),Rowblack()$</table>");
            st.setAttribute("Item", uss);
            System.out.print(st.toString());
           }
          4 條件判斷
          public static void fun5() {
            StringTemplate st = new StringTemplate(
              "當前用戶登陸狀態: $if(IsAdmin)$ 用戶登陸成功! $else$ 用戶沒有登陸! $endif$");
            st.setAttribute("IsAdmin", true);
            System.out.print(st.toString());
           }
          5 sql語句實現
            theQuery.st內容
            SELECT $column; separator=","$ FROM $table$;
            public static void fun6() {
            // 一個sql語句的實現
            StringTemplateGroup group = new StringTemplateGroup("myGroup", "c:/");
            StringTemplate query = group.getInstanceOf("theQuery");
            query.setAttribute("column", "name");
            query.setAttribute("column", "email");
            query.setAttribute("table", "User");
            System.out.print(query.toString());
           }
          6 使用AttributeRenderer
            private static class DateRenderer implements AttributeRenderer {
            public String toString(Object o) {
             SimpleDateFormat f = new SimpleDateFormat("yyyy.MM.dd");
             return f.format(((Calendar) o).getTime());
            }
           }
          public static void fun7() {
            StringTemplate st = new StringTemplate("date: <created>",
              AngleBracketTemplateLexer.class);
            st.setAttribute("created", new GregorianCalendar(2005, 07 - 1, 05));
            st.registerRenderer(GregorianCalendar.class, new DateRenderer());

            String result = st.toString();

            System.out.print(result.toString());
           }

          posted on 2009-11-14 13:40 BlakeSu 閱讀(1246) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 尼勒克县| 阿城市| 思茅市| 辽阳市| 禄丰县| 双城市| 双流县| 建平县| 天等县| 阿荣旗| 永安市| 西林县| 汉寿县| 福泉市| 塔城市| 西青区| 丁青县| 瓮安县| 天门市| 应城市| 安吉县| 宣化县| 石景山区| 凭祥市| 偃师市| 乌鲁木齐市| 泗洪县| 新疆| 桂东县| 延庆县| 广汉市| 静海县| 萍乡市| 酒泉市| 灵石县| 福清市| 松溪县| 芦溪县| 安达市| 霍林郭勒市| 阳春市|